Технологии semantic web. Часть ii. Формат представления...

91
Технологии Semantic Web Алик Кириллович Казанский Федеральный Университет http://www.alik.su OWL SPARQL RDF Ver. 2.0

Upload: alik-kirillovich

Post on 08-Aug-2015

7.424 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Технологии Semantic Web. Часть II. Формат представления данных RDF

Технологии

Semantic Web

Алик КирилловичКазанский Федеральный Университет

http://www.alik.su

OWL SPARQLRDF

Ver. 2.0

Page 2: Технологии Semantic Web. Часть II. Формат представления данных RDF

Содержание курса

I. Введение в семантику и Semantic Web

II. Формат представления данных RDF

III. Формальные онтологии

IV. Язык описания онтологий OWL

V. Язык запросов SPARQL

VI. Semantic Web в дикой природе:популярные ресурсы, онтологии и сервисы

Page 3: Технологии Semantic Web. Часть II. Формат представления данных RDF

Ресурс

Ресурс — это любая сущность: электронный документ, объект реального мира или даже абстрактное понятие

RDF позволяет• кому угодно• сказать что угодно• о каком угодно ресурсе.

Page 4: Технологии Semantic Web. Часть II. Формат представления данных RDF

URI

• RDF позволяет кому угодно сказать что угодно о каком угодно ресурсе.

• Для этого должна быть возможность однозначно идентифицировать любой ресурс.

• В WWW уже существует технология глобальной идентификации ресурсов — URI (Uniform Resource Identifier).

• Решение: присвоить каждому ресурсу URI.

Частным случаем URI является всем известный URL (Uniform Resource Locator).Примеры URL: http://habrahabr.ru, mailto:[email protected]

Page 5: Технологии Semantic Web. Часть II. Формат представления данных RDF

Триплет

Высказывание о ресурсе представляется в виде триплета.

Триплет состоит из трех частей:• субъект — описываемый ресурс,• предикат — свойство ресурса,• объект — значение свойства.

Субъектпредикат

Объект

имяКазань

http://kzn.ru

Page 6: Технологии Semantic Web. Часть II. Формат представления данных RDF

Триплет

Высказывание о ресурсе представляется в виде триплета.

Триплет состоит из трех частей:• субъект — описываемый ресурс,• предикат — свойство ресурса,• объект — значение свойства.

Субъектпредикат

Объект

основан-в1005-08-27 ^^xsd:date

http://kzn.ru

Page 7: Технологии Semantic Web. Часть II. Формат представления данных RDF

Триплет

Высказывание о ресурсе представляется в виде триплета.

Триплет состоит из трех частей:• субъект — описываемый ресурс,• предикат — свойство ресурса,• объект — значение свойства.

Субъектпредикат

Объект

находится-в

http://kzn.ru http://tatar.ru

Page 8: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF-граф

Триплеты из RDF-документа объединяются в RDF-граф.

имяКазань

основан-в1005-08-27

находится-в

имяТатарстан

находится-в

имяРоссия

kzn.ru

gov.ru

kzn.ru

kzn.ru

tatar.ru

tatar.ru

gov.ru

tatar.ru

Page 9: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF-граф

Триплеты из RDF-документа объединяются в RDF-граф.

Казань

основан-в

1005-08-27

находится-в

Татарстан

находится-в

Россия

имя имя имя

gov.rutatar.ru

kzn.ru

Page 10: Технологии Semantic Web. Часть II. Формат представления данных RDF

Giant Global Graph

Все существующие RDF графы объединяются в единыйGiant Global Graph (GGG)

Page 11: Технологии Semantic Web. Часть II. Формат представления данных RDF

Giant Global Graph

World Wide Web (WWW) — объединение всех связанных документов.

Giant Global Graph (GGG) — объединение всех связанных данных. Это новый шаг в развитии WWW.

Page 12: Технологии Semantic Web. Часть II. Формат представления данных RDF

Вывод триплетов

На основе онтологий с помощью логического вывода в RDF-графе вычисляются не существовавшие до этого триплеты

находится-в находится-в

находится-в

содержит содержит

содержит

Page 13: Технологии Semantic Web. Часть II. Формат представления данных RDF

Состав триплета

Возможные значения элементов триплета:• ресурс, задаваемый по URI,• анонимный ресурс,• литерал в формате Unicode.

илиURI Анонимный

ресурс

или

или

Литерал

Ресурс с URI

Анонимный ресурс

Ресурс с URI

Субъект(описываемый ресурс)

Предикат(свойство ресурса)

Объект(значение свойства)

Page 14: Технологии Semantic Web. Часть II. Формат представления данных RDF

• URL ресурса (если этот ресурс — электронный документ)

Проблема: Подходит только для электронных документов

Ресурс, задаваемый по URI

В качестве URI может выступать:

«Хабрахабр» — электронный ресурс. В качестве URI используем его URL:

http://habrahabr.ru

Нужен URI для объектов реального мира

Page 15: Технологии Semantic Web. Часть II. Формат представления данных RDF

• URN — абстрактный URI, идентифицирующий ресурс, но не указывающий, где он расположен

Проблема 1: Не для всех типов ресурсов есть схема кодирования

Проблема 2: Нельзя перейти по ссылке и получить информацию о ресурсе

Ресурс, задаваемый по URI

В качестве URI может выступать:

URI ресурса «Книга „Капитал. Том I“», определённого по коду ISBN:

urn:isbn:9660313837

URI ресурса «Страна Украина», определённого по коду OID:

urn:oid:2.16.804

Нужен URI объекта, который был бы работающей ссылкой

Page 16: Технологии Semantic Web. Часть II. Формат представления данных RDF

• URL документа с описанием ресурса

Проблема: Как отличить утверждения об объекте от утверждений о сайте?

Ресурс, задаваемый по URI

В качестве URI может выступать:

Ресурс «Эйфелева башня» — объект реального мира, а не электронный документ, поэтому на него нельзя сослаться напрямую.

В качестве URI используем URL документа с его описанием — официальный сайт башни:

http://www.toureiffel.paris

Как отличить:утверждения о ресурсе «Эйфелева башня» от утверждений о ресурсе «Сайт Эйфелевой башни»?

Нужен URI объекта,который был бы работающей и однозначной ссылкой

Page 17: Технологии Semantic Web. Часть II. Формат представления данных RDF

• URL фрагмента документа с описанием ресурса

Ресурс, задаваемый по URI

В качестве URI может выступать:

http://www.toureiffel.paris — URI сайта Эйфелевой башни

http://www.toureiffel.paris#about — URI самой Эйфелевой башни

Page 18: Технологии Semantic Web. Часть II. Формат представления данных RDF

• Специальный URI с переадресацией

Ресурс, задаваемый по URI

В качестве URI может выступать:

http://dbpedia.org/resource/Kazan

http://dbpedia.org/page/Kazan http://dbpedia.org/data/Kazan

Переадресация(303 redirect)

Для человека(text/html)

Для машины(application/rdf+xml)

Page 19: Технологии Semantic Web. Часть II. Формат представления данных RDF

Анонимный ресурс

• Когда ресурс неизвестен

• Как промежуточный узел в N-арных отношениях

Анонимный ресурс (blank node) — ресурс, который не имеет URI

Варианты использования:

Басаев был убит неизвестным агентом ФСБ.

:basayev URI не задан

foaf:workplaceHomepage:killed

www.fsb.ru

Водка содержит 40% спирта.

:содержит

URI не задан

:ингредиент

:количество

40%:водка

:спирт

Page 20: Технологии Semantic Web. Часть II. Формат представления данных RDF

Литерал

• Не типизированный литерал — просто строка символов;

• Литерал с меткой языка — текст на каком-то языке;

• Типизированный литерал — некое значение (число, дата, булевское

значение и т.д.)

Литерал — строка символов в кодировке Unicode

Виды литералов:

Page 21: Технологии Semantic Web. Часть II. Формат представления данных RDF

Литерал

Литерал с кодом языка — текст на каком-то языке. Состоит из:

• текста литерала в кодировке Unicode и• метки языка в формате RFC 3066.

kzn.ru

Казань @ru

Казан @tt

Kazan @en

Литералы с одинаковым текстом, но разными кодами языка не равны друг другу.

Rock @en ≠(рок-музыка) Rock @de (юбка)

Булка @ru Булка @bg (невеста)≠

Chat @en (болтовня) Chat @fr (кошка)≠

:имя

:имя

:имя

Page 22: Технологии Semantic Web. Часть II. Формат представления данных RDF

Литерал

Типизированный литерал имеет некое значение. Состоит из:

• текста литерала в кодировке Unicode и• URI типа данных.

В RDF можно использовать любой URI типа данных, но, встроенную поддержку имеют только типы данных из пространства имен XML Schema (XSD).

:дата-основания

1804-11-17

Kpfu.ru

^^xsd:date

Тип данных соотносит символьное представление литерала с неким значением (числом, датой, булевским значением и т.д.)

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

42 ^^xsd:decimal +42 ^^xsd:decimal= 42.00 ^^xsd:decimal= =

42 +42 42.00≠ ≠ , но:

Page 23: Технологии Semantic Web. Часть II. Формат представления данных RDF

Класс

• Класс — это такой же RDF-ресурс, задаваемый по URI.

• Классы описываются средствами RDFs и OWL.

• Принадлежность ресурса классу задается встроенным предикатом rdf:type.

• RDF содержит несколько встроенных классов:o rdf:Statement— для создания реификации (утверждений об утверждениях);

o rdf:Bag, rdf:Seq, rdf:Alt, rdf:List — для создания контейнеров и списков;

o и некоторые другие.

RDF-класс — это категория ресурсов (например: Люди, Организации, Документы и т.д.)

Казанский Университет — это организация (RDF-класс foaf:Organization).

rdf:type

Kpfu.ru

foaf:Organization

Page 24: Технологии Semantic Web. Часть II. Формат представления данных RDF

Реификация

Для создания утверждения об утверждении создается ресурс относящийся к классу rdf:statement и имеющий три свойства:

• rdf:subject — субъект утверждения;

• rdf:predicate — предикат;

• rdf:object — объект.

Реификация — это утверждение об утверждении

Птолемей сказал, что Земля является центром Вселенной.

:сказал

rdf:statement

rdf:type

rdf:subject

rdf:predicate

rdf:object

:вселенная

:земля

:центр

Page 25: Технологии Semantic Web. Часть II. Формат представления данных RDF

Реификация

Для создания утверждения об утверждении создается ресурс относящийся к классу rdf:statement и имеющий три свойства:

• rdf:subject — субъект утверждения;

• rdf:predicate — предикат;

• rdf:object — объект.

Реификация — это утверждение об утверждении

Коперник сказал, что центром Вселенной является Солнце.

:сказал

rdf:statement

rdf:type

rdf:subject

rdf:predicate

rdf:object

:вселенная

:солнце

:центр

Page 26: Технологии Semantic Web. Часть II. Формат представления данных RDF

Реификация

Для создания утверждения об утверждении создается ресурс относящийся к классу rdf:statement и имеющий три свойства:

• rdf:subject — субъект утверждения;

• rdf:predicate — предикат;

• rdf:object — объект.

Реификация — это утверждение об утверждении

Мюллер думает, что Штирлиц является гражданином Третьего рейха.

:думает

rdf:statement

rdf:type

rdf:subject

rdf:predicate

rdf:object

:штирлиц

:имеет-гражданство

:третий-рейх:мюллер

Page 27: Технологии Semantic Web. Часть II. Формат представления данных RDF

Контейнеры и списки

RDF позволяет группировать ресурсы (и литералы) и использовать их в высказываниях как единое целое.

Поддерживаются следующие виды групп:

• контейнеры:• bag — неупорядоченный набор;

• alt — набор возможных альтернатив;

• seq — упорядоченный набор;

• list — коллекции. Коллекции являются закрытыми группами, т.е. они содержат только те элементы, которые были перечислены и больше никаких других по определению.

Apple основал Стив Джобс, Стив Возняк и Рональд Уэйн.

Столицей XXIII Зимних Олимпийских игр будет Анси, Мюнхен или Пхёнчхан.

В случае отставки президента США его замещают по порядку: вице-президент, спикер Палаты представителей, временный председатель Сената, государственный секретарь, …

Согласно канонической христианской традиции,Троица состоит из Бога-отца, Бога-Сына и Святого Духа и ни из кого больше по определению.

Page 28: Технологии Semantic Web. Часть II. Формат представления данных RDF

Apple основал Стив Джобс, Стив Возняк и Рональд Уэйн.

Неупорядоченный набор

:основан

rdf:bag

rdf:type

rdf:_1

rdf:_2

rdf:_3

http://www.apple.com/pr/bios/jobs.html

http://www.woz.org

http://dbpedia.org/resource/Ronald_G_Wayne

apple.com

Для создания неупорядоченного набора создается ресурс:• относящийся к классу rdf:bag• и имеющий свойства rdf:_1, rdf:_2, …, rdf:_n, указывающие на

соответствующие элементы.

Page 29: Технологии Semantic Web. Часть II. Формат представления данных RDF

Столицей XXIII Зимних Олимпийских игр будет Анси, Мюнхен или Пхёнчхан.

Набор альтернатив

:host-city

rdf:alt

rdf:type

rdf:_1

rdf:_2

rdf:_3

http://www.impliquons-nous.com/

http://www.muenchen2018.org/

http://www.pyeongchang2018.org/

olympic.org

Для создания набора альтернатив создается ресурс:• относящийся к классу rdf:alt• и имеющий свойства rdf:_1, rdf:_2, …, rdf:_n, указывающие на

соответствующие альтернативы.

2018

Page 30: Технологии Semantic Web. Часть II. Формат представления данных RDF

Упорядоченный набор

Для создания упорядоченного набора создается ресурс:• относящийся к классу rdf:seq• и имеющий свойства rdf:_1, rdf:_2, …, rdf:_n, указывающие на

соответствующие элементы.

В случае отставки президента США его замещают по порядку: вице-президент, спикер Палаты представителей, временный председатель Сената, государственный секретарь, …, и, наконец, министр нац. безопасности.

:success

rdf:seq

rdf:type

rdf:_1

rdf:_2

rdf:_3

http://www.whitehouse.gov/administration/vice-president-biden

http://speaker.house.gov

http://www.byrd.senate.gov

whitehouse.gov/president

...

rdf:_17

rdf:_4http://www.state.gov

http://www.treasury.gov

Page 31: Технологии Semantic Web. Часть II. Формат представления данных RDF

Коллекция

Коллекция подобна списку в языке Lisp. Для ее создания создается ресурсотносящийся к классу rdf:list и имеющий два свойства: • rdf:first (голова) — первый элемент коллекции;• rdf:rest (хвост) — ссылка на под-коллекцию, содержащую оставшиеся элементы.

Под-коллекция также содержит голову и хвост. Хвост под-коллекции, содержащей последний элемент указывает на встроенный ресурс rdf:nil.

Согласно канонической христианской традиции, Троица состоит из Бога-отца, Бога-Сына и Святого Духаи ни из кого больше по определению.

:состоит-из

рпц:троица

rdf:rest

rdf:first

rdf:list

rdf:type

рпц:бог-отец

rdf:nil

rdf:listrdf:first

rdf:rest

rdf:typeрпц:дух-святой

rdf:first

rdf:rest

rdf:list

rdf:type

рпц:бог-сын

Page 32: Технологии Semantic Web. Часть II. Формат представления данных RDF

Способы хранения RDF-графа

• Triplestore + точка доступа

Аналогично реляционной базе данных

• Текстовый файл в специальном формате

Два подхода:

Page 33: Технологии Semantic Web. Часть II. Формат представления данных RDF

Сериализация RDF

Форматы сериализации:

• RDF/XML — стандартный формат на базе XML.

• N-Triples — простой формат.

• Turtle — удобный формат.

• JSON-LD — формат на базе JSON.

• RDFa и Microdata — формат RDF-разметки HTML-страниц.

Сериализация — это представление RDF в текстовом виде

Page 34: Технологии Semantic Web. Часть II. Формат представления данных RDF

Сериализация RDF

<rdf:RDFxmlns:foaf='http://xmlns.com/foaf/0.1/'xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'><foaf:Person rdf:about="http://kiwitobes.com/toby.rdf#ts">

<foaf:name>Toby Segaran</foaf:name><foaf:homepage rdf:resource="http://kiwitobes.com/"/><foaf:nick>kiwitobes</foaf:nick><foaf:mbox rdf:resource="mailto:[email protected]"/><foaf:interest><foaf:Document rdf:about="http://semprog.com">

<rdfs:label>Semantic Programming</rdfs:label></foaf:Document>

</foaf:interest><foaf:knows><foaf:Person rdf:about="http://semprog.com/people/colin">

<foaf:name>Colin Evans</foaf:name><foaf:mbox rdf:resource="mailto:[email protected]"/>

</foaf:Person></foaf:knows><foaf:knows><foaf:Person>

<foaf:name>Jamie Taylor</foaf:name><foaf:mbox rdf:resource="mailto:[email protected]"/>

</foaf:Person></foaf:knows>

</foaf:Person></rdf:RDF><!-- (Из книги Segaran, Evans, Taylor «Programming the Semantic Web») -->

Пример RDF/XML:

Page 35: Технологии Semantic Web. Часть II. Формат представления данных RDF

Сериализация RDF

<http://kiwitobes.com/toby.rdf#ts> <http://xmlns.com/foaf/0.1/homepage> <http://kiwitobes.com/>.

<http://kiwitobes.com/toby.rdf#ts> <http://xmlns.com/foaf/0.1/nick> "kiwitobes".

<http://kiwitobes.com/toby.rdf#ts> <http://xmlns.com/foaf/0.1/name> "Toby Segaran".

<http://kiwitobes.com/toby.rdf#ts> <http://xmlns.com/foaf/0.1/mbox> <mailto:[email protected]>.

<http://kiwitobes.com/toby.rdf#ts> <http://xmlns.com/foaf/0.1/interest> <http://semprog.com>.

<http://kiwitobes.com/toby.rdf#ts> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person>.

<http://kiwitobes.com/toby.rdf#ts> <http://xmlns.com/foaf/0.1/knows> _:jamie .

<http://kiwitobes.com/toby.rdf#ts> <http://xmlns.com/foaf/0.1/knows> <http://semprog.com/people/colin>.

_:jamie <http://xmlns.com/foaf/0.1/name> "Jamie Taylor".

_:jamie <http://xmlns.com/foaf/0.1/mbox> <mailto:[email protected]>.

_:jamie <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person>.

<http://semprog.com/people/colin> <http://xmlns.com/foaf/0.1/name> "Colin Evans".

<http://semprog.com/people/colin> <http://xmlns.com/foaf/0.1/mbox> <mailto:[email protected]>.

<http://semprog.com/people/colin> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person>.

<http://semprog.com> <http://www.w3.org/2000/01/rdf-schema#label> "Semantic Programming".

<http://semprog.com> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document>.

# (Из книги Segaran, Evans, Taylor «Programming the Semantic Web»)

Пример N-Triples:

Page 36: Технологии Semantic Web. Часть II. Формат представления данных RDF

Сериализация RDF

@prefix foaf: <http://xmlns.com/foaf/0.1/>.@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix semperp: <http://semprog.com/people/>.@prefix tobes: <http://kiwitobes.com/toby.rdf#>.

tobes:ts a foaf:Person;foaf:homepage <http://kiwitobes.com/>;foaf:interest <http://semprog.com>;foaf:knows semperp:colin,

[ a foaf:Person;foaf:mbox <mailto:[email protected]>;foaf:name "Jamie Taylor"];

foaf:mbox <mailto:[email protected]>;foaf:name "Toby Segaran";foaf:nick "kiwitobes".

<http://semprog.com> a foaf:Document;rdfs:label "Semantic Programming".

semperp:colin a foaf:Person;foaf:mbox <mailto:[email protected]>;foaf:name "Colin Evans".

# (Из книги Segaran, Evans, Taylor «Programming the Semantic Web»)

Пример Turtle:

Page 37: Технологии Semantic Web. Часть II. Формат представления данных RDF

Сериализация RDF

<div xmlns:foaf="http://xmlns.com/foaf/0.1/" about="http://kiwitobes.com/toby.rdf#ts" typeof="foaf:Person"><p>

Name: <span property="foaf:name">Toby Segaran</span></p><p>

Nickname: <span property="foaf:nick">kiwitobes</span></p><p>

Interests:<a rel="foaf:interest" href="http://semprog.org">

<span property="rdfs:label">Semantic Programming</span></a>

</p><p>Homepage: <a rel="foaf:homepage" href="http://kiwkitobes.com/">KiwiTobes</a>

</p><p>Friends:

</p><ul rel="foaf:knows">

<li about="http://semprog.com/people/colin" typeof="foaf:Person" property="foaf:name">Colin Evans

</li><li typeof="foaf:Person">

<p property="foaf:name">Jamie Taylor</p><p>

Email: <a rel="foaf:mbox" href="mailto:[email protected]">[email protected]</a></p>

</li></ul>

</div>

<!-- (Из книги Segaran, Evans, Taylor «Programming the Semantic Web») -->

Пример RDFa (подсвечено):

Page 38: Технологии Semantic Web. Часть II. Формат представления данных RDF

Сериализация RDF

<div itemscope itemid="http://kiwitobes.com/toby.rdf#ts" itemtype=" http://xmlns.com/foaf/0.1/Person"><p>

Name: <span itemprop="name">Toby Segaran</span></p><p>

Nickname: <span itemprop ="nick">kiwitobes</span></p><p>

Interests:<a itemprop="interest" href="http://semprog.org" itemscope>

<span itemprop="http://www.w3.org/2000/01/rdf-schema#label">Semantic Programming</span></a>

</p><p>Homepage: <a itemprop="homepage" href="http://kiwkitobes.com/">KiwiTobes</a>

</p><p>Friends:

</p><ul>

<li itemscope itemid="http://semprog.com/people/colin" itemtype=" http://xmlns.com/foaf/0.1/Person"><span itemprop="name">Colin Evans</span>

</li><li itemscope itemtype=" http://xmlns.com/foaf/0.1/Person">

<p itemprop="name">Jamie Taylor</p><p>

Email: <a itemprop="mbox" href="mailto:[email protected]">[email protected]</a></p>

</li></ul>

</div>

Пример Microdata (подсвечено):

Page 39: Технологии Semantic Web. Часть II. Формат представления данных RDF

N-Triples

<http://example.com/vasya> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person>.<http://example.com/vasya> <http://schema.org/name> "Вася Пупкин".<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/petya>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/masha>.

N-Triples состоит из простого перечисления триплетов.Триплет содержит субъект, предикат и объект, разделенные пробелом.В конце триплета ставится точка.

Page 40: Технологии Semantic Web. Часть II. Формат представления данных RDF

N-Triples

<http://example.com/vasya> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person>.<http://example.com/vasya> <http://schema.org/name> "Вася Пупкин".<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/petya>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/masha>.

N-Triples состоит из простого перечисления триплетов.Триплет содержит субъект, предикат и объект, разделенные пробелом.В конце триплета ставится точка.

Субъект Предикат Объект

<http://example.com/vasya> <http://schema.org/knows> <http://example.com/masha>.

Page 41: Технологии Semantic Web. Часть II. Формат представления данных RDF

N-Triples

<http://example.com/vasya> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person>.<http://example.com/vasya> <http://schema.org/name> "Вася Пупкин".<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/petya>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/masha>.

URI’и ресурсов записываются в <…>.

Page 42: Технологии Semantic Web. Часть II. Формат представления данных RDF

N-Triples

<http://example.com/vasya> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person>.<http://example.com/vasya> <http://schema.org/name> "Вася Пупкин".<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/petya>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/masha>.

Литералы записываются в кавычках.

Page 43: Технологии Semantic Web. Часть II. Формат представления данных RDF

N-Triples

<http://example.com/vasya> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person>.<http://example.com/vasya> <http://schema.org/name> "Вася Пупкин"@ru.<http://example.com/vasya> <http://schema.org/name> "Vasya Pupkin"@en.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/petya>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/masha>.

Код языка в литерале записывается после @.

Page 44: Технологии Semantic Web. Часть II. Формат представления данных RDF

N-Triples

Тип данных литерала — после ^^.

<http://example.com/vasya> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person>.<http://example.com/vasya> <http://schema.org/name> "Вася Пупкин"@ru.<http://example.com/vasya> <http://schema.org/name> "Vasya Pupkin"@en.<http://example.com/vasya> <http://schema.org/birthDate> "1990-04-30"^^<http://www.w3.org/2001/XMLSchema#date>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/petya>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/masha>.

Page 45: Технологии Semantic Web. Часть II. Формат представления данных RDF

N-Triples

<http://example.com/vasya> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person>.<http://example.com/vasya> <http://schema.org/name> "Вася Пупкин"@ru.<http://example.com/vasya> <http://schema.org/name> "Vasya Pupkin"@en.<http://example.com/vasya> <http://schema.org/birthDate> "1990-04-30"^^<http://www.w3.org/2001/XMLSchema#date>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/petya>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/masha>.<http://example.com/vasya> <http://schema.org/knows> _:person1.

_:person1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person>._:person1 <http://schema.org/name> "Марья Ивановна"@ru._:person1 <http://schema.org/name> "Maria Ivanovna"@en.

Для того, чтобы описать анонимный узел, ему дают служебный идентификатор.Идентификатор записывается так: _:идентификатор.

Замечание: идентификатор — это не URI, на него нельзя сослаться из других графов.

Page 46: Технологии Semantic Web. Часть II. Формат представления данных RDF

Turtle

<http://example.com/vasya> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person>.<http://example.com/vasya> <http://schema.org/name> "Вася Пупкин"@ru.<http://example.com/vasya> <http://schema.org/name> "Vasya Pupkin"@en.<http://example.com/vasya> <http://schema.org/birthDate> "1990-04-30"^^<http://www.w3.org/2001/XMLSchema#date>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/petya>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/masha>.<http://example.com/vasya> <http://schema.org/knows> _:person1.

_:person1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person>._:person1 <http://schema.org/name> "Марья Ивановна"@ru._:person1 <http://schema.org/name> "Maria Ivanovna"@en.

Turtle является расширением N-Triples.Поэтому, любой N-Triples-документ также является и Turtle-документом.Но Turtle позволяет записывать триплеты в более понятном и компактном виде.

Page 47: Технологии Semantic Web. Часть II. Формат представления данных RDF

Turtle

@prefix : <http://example.com/>. #Префикс с пустым именем@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix schema: <http://schema.org/>.

<http://example.com/vasya> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person>.<http://example.com/vasya> <http://schema.org/name> "Вася Пупкин"@ru.<http://example.com/vasya> <http://schema.org/name> "Vasya Pupkin"@en.<http://example.com/vasya> <http://schema.org/birthDate> "1990-04-30"^^<http://www.w3.org/2001/XMLSchema#date>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/email> <mailto:[email protected]>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/petya>.<http://example.com/vasya> <http://schema.org/knows> <http://example.com/masha>.<http://example.com/vasya> <http://schema.org/knows> _:person1.

_:person1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person>._:person1 <http://schema.org/name> "Марья Ивановна"@ru._:person1 <http://schema.org/name> "Maria Ivanovna"@en.

URI’и с повторяющимися префиксами можно сократить, присвоив префиксу имя.Имя присваивается так: «@prefix имя-префикса: <префикс>.». Одно имя м.б. пустым .Сокращенный URI записывается так: имя-префикса:остаток-uri (без <…>).

Page 48: Технологии Semantic Web. Часть II. Формат представления данных RDF

Turtle

@prefix : <http://example.com/>. #Префикс с пустым именем@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix schema: <http://schema.org/>.

:vasya rdf:type schema:Person.:vasya schema:name "Вася Пупкин"@ru.:vasya schema:name "Vasya Pupkin"@en.:vasya schema:birthDate "1990-04-30"^^xsd:date.:vasya schema:email <mailto:[email protected]>.:vasya schema:email <mailto:[email protected]>.:vasya schema:knows :petya.:vasya schema:knows :masha.:vasya schema:knows _:person1.

_:person1 rdf:type schema:Person._:person1 schema:name "Марья Ивановна"@ru._:person1 schema:name "Maria Ivanovna"@en.

URI’и с повторяющимися префиксами можно сократить, присвоив префиксу имя.Имя присваивается так: «@prefix имя-префикса: <префикс>.». Одно имя м.б. пустым .Сокращенный URI записывается так: имя-префикса:остаток-uri (без <…>).

Page 49: Технологии Semantic Web. Часть II. Формат представления данных RDF

Turtle

@prefix : <http://example.com/>. #Префикс с пустым именем@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix schema: <http://schema.org/>.

:vasya rdf:type schema:Person.:vasya schema:name "Вася Пупкин"@ru.:vasya schema:name "Vasya Pupkin"@en.:vasya schema:birthDate "1990-04-30"^^xsd:date.:vasya schema:email <mailto:[email protected]>.:vasya schema:email <mailto:[email protected]>.:vasya schema:knows :petya.:vasya schema:knows :masha.:vasya schema:knows _:person1.

_:person1 rdf:type schema:Person._:person1 schema:name "Марья Ивановна"@ru._:person1 schema:name "Maria Ivanovna"@en.

URI’и с повторяющимися префиксами можно сократить, присвоив префиксу имя.Имя присваивается так: «@prefix имя-префикса: <префикс>.». Одно имя м.б. пустым .Сокращенный URI записывается так: имя-префикса:остаток-uri (без <…>).

schema:name ↔ http://schema.org/name

Page 50: Технологии Semantic Web. Часть II. Формат представления данных RDF

Turtle

@prefix : <http://example.com/>.@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix schema: <http://schema.org/>.

:vasya rdf:type schema:Person;schema:name "Вася Пупкин"@ru;schema:name "Vasya Pupkin"@en;schema:birthDate "1990-04-30"^^xsd:date;schema:email <mailto:[email protected]>;schema:email <mailto:[email protected]>;schema:knows :petya;schema:knows :masha;schema:knows _:person1.

_:person1 rdf:type schema:Person;schema:name "Марья Ивановна"@ru;schema:name "Maria Ivanovna"@en.

#Отступы в примере добавлены для форматирования, они необязательны

Повторяющиеся субъекты можно опустить.Триплет с опущенным субъектом отделяется от предыдущего символом ;.

Page 51: Технологии Semantic Web. Часть II. Формат представления данных RDF

Turtle

@prefix : <http://example.com/>.@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix schema: <http://schema.org/>.

:vasya rdf:type schema:Person;schema:name "Вася Пупкин"@ru,

"Vasya Pupkin"@en;schema:birthDate "1990-04-30"^^xsd:date;schema:email <mailto:[email protected]>,

<mailto:[email protected]>;schema:knows :petya,

:masha,_:person1.

_:person1 rdf:type schema:Person;schema:name "Марья Ивановна"@ru,

"Maria Ivanovna"@en.

Если повторяется и субъект, и предикат — их также можно опустить.Триплет с опущенным субъектом и предикатом отделяется от предыдущего симв. «,».

Page 52: Технологии Semantic Web. Часть II. Формат представления данных RDF

Turtle

@prefix : <http://example.com/>.@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix schema: <http://schema.org/>.

:vasya rdf:type schema:Person;schema:name "Вася Пупкин"@ru,

"Vasya Pupkin"@en;schema:birthDate "1990-04-30"^^xsd:date;schema:email <mailto:[email protected]>,

<mailto:[email protected]>;schema:knows :petya,

:masha,[rdf:type schema:Person;schema:name "Марья Ивановна"@ru,

"Maria Ivanovna"@en].

Анонимный узел можно записать также в […].Субъект в […] всегда опущен.

Page 53: Технологии Semantic Web. Часть II. Формат представления данных RDF

Turtle

@prefix : <http://example.com/>.@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix schema: <http://schema.org/>.

:vasya a schema:Person;schema:name "Вася Пупкин"@ru,

"Vasya Pupkin"@en;schema:birthDate "1990-04-30"^^xsd:date;schema:email <mailto:[email protected]>,

<mailto:[email protected]>;schema:knows :petya,

:masha,[a schema:Person;schema:name "Марья Ивановна"@ru,

"Maria Ivanovna"@en].

rdf:type можно заменить на a.

Page 54: Технологии Semantic Web. Часть II. Формат представления данных RDF

Turtle

@prefix : <http://example.com/>.@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix schema: <http://schema.org/>.@prefix xfn: <http://gmpg.org/xfn/1#>.

:vasya rdf:type schema:Person;schema:name "Вася Пупкин"@ru,

"Vasya Pupkin"@en;schema:birthDate "1990-04-30"^^xsd:date;schema:email <mailto:[email protected]>,

<mailto:[email protected]>;schema:knows :petya,

:masha,[rdf:type schema:Person;schema:name "Марья Ивановна"@ru,

"Maria Ivanovna"@en].

:wolf xfn:crush (:nif-nif :noof-noof :naf-naf). #Волк совсем потерял голову от трех поросят (от всех в целом)

Коллекция записывается в (…).Ее элементы отделяются пробелом.

Page 55: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

</rdf:RDF>

Корнем RDF/XML документа является элемент rdf:RDF

Пропустить эту нудятину про RDF/XML →

Page 56: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

</rdf:RDF>

В нем можно объявить необходимые пространства имен

Пропустить эту нудятину про RDF/XML →

Page 57: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description></rdf:Description>

</rdf:RDF>

Описание ресурса задается с помощью элемента rdf:Description

Пропустить эту нудятину про RDF/XML →

Page 58: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"></rdf:Description>

</rdf:RDF>

URI ресурса — через атрибут rdf:about

Пропустить эту нудятину про RDF/XML →

Page 59: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"><foaf:name>Вася Пупкин</foaf:name><schema:birthDate>1990-09-30</schema:birthDate>

</rdf:Description></rdf:RDF>

Свойства описываются с помощью вложенных элементов

Пропустить эту нудятину про RDF/XML →

Page 60: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"><foaf:name>Вася Пупкин</foaf:name><schema:birthDate>1990-09-30</schema:birthDate>

</rdf:Description></rdf:RDF>

Замечание: URI свойства = URI пространства имен + имя свойства

foaf:name ↔ http://xmlns.com/foaf/0.1/name

Пропустить эту нудятину про RDF/XML →

Page 61: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"><foaf:name>Вася Пупкин</foaf:name><schema:birthDate>1990-09-30</schema:birthDate><foaf:knows><rdf:Description rdf:about="http://example.com/masha"></rdf:Description>

</foaf:knows></rdf:Description>

</rdf:RDF>

Значением свойства может быть другой ресурс

Пропустить эту нудятину про RDF/XML →

Page 62: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"><foaf:name>Вася Пупкин</foaf:name><schema:birthDate>1990-09-30</schema:birthDate><foaf:knows><rdf:Description rdf:about="http://example.com/masha"><foaf:name>Маша Пупкина</foaf:name>

</rdf:Description></foaf:knows>

</rdf:Description></rdf:RDF>

Он может иметь свои свойства

Пропустить эту нудятину про RDF/XML →

Page 63: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"><foaf:name>Вася Пупкин</foaf:name><schema:birthDate>1990-09-30</schema:birthDate><foaf:knows><rdf:Description rdf:about="http://example.com/masha"><foaf:name>Маша Пупкина</foaf:name><foaf:interest><rdf:Description rdf:about="http://dbpedia.org/resource/Pop_music"></rdf:Description>

</foaf:interest></rdf:Description>

</foaf:knows></rdf:Description>

</rdf:RDF>

…значением которых тоже могут быть ресурсы (и так до бесконечности)

Пропустить эту нудятину про RDF/XML →

Page 64: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"><foaf:name xml:lang="ru">Вася Пупкин</foaf:name><schema:birthDate>1990-09-30</schema:birthDate><foaf:knows><rdf:Description rdf:about="http://example.com/masha"><foaf:name xml:lang="ru">Маша Пупкина</foaf:name><foaf:interest><rdf:Description rdf:about="http://dbpedia.org/resource/Pop_music"></rdf:Description>

</foaf:interest></rdf:Description>

</foaf:knows></rdf:Description>

</rdf:RDF>

Код языка в литерале задается с помощью атрибута xml:lang

Пропустить эту нудятину про RDF/XML →

Page 65: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"xml:lang="ru">

<foaf:name>Вася Пупкин</foaf:name><schema:birthDate>1990-09-30</schema:birthDate><foaf:knows><rdf:Description rdf:about="http://example.com/masha"><foaf:name>Маша Пупкина</foaf:name><foaf:interest><rdf:Description rdf:about="http://dbpedia.org/resource/Pop_music"></rdf:Description>

</foaf:interest></rdf:Description>

</foaf:knows></rdf:Description>

</rdf:RDF>

Код языка можно задать для родительского элемента,и он будет действовать для всех вложенных элементов(пока не будет переопределен)

Пропустить эту нудятину про RDF/XML →

Page 66: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"xml:lang="ru">

<foaf:name>Вася Пупкин</foaf:name><schema:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-09-30</schema:birthDate><foaf:knows><rdf:Description rdf:about="http://example.com/masha"><foaf:name>Маша Пупкина</foaf:name><foaf:interest><rdf:Description rdf:about="http://dbpedia.org/resource/Pop_music"></rdf:Description>

</foaf:interest></rdf:Description>

</foaf:knows></rdf:Description>

</rdf:RDF>

Тип данных в литерале задается с помощью атрибута rdf:datatype

Пропустить эту нудятину про RDF/XML →

Page 67: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"xml:lang="ru">

<foaf:name>Вася Пупкин</foaf:name><schema:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-09-30</schema:birthDate><foaf:knows><rdf:Description rdf:about="http://example.com/masha"><foaf:name>Маша Пупкина</foaf:name><foaf:interest rdf:resource="http://dbpedia.org/resource/Pop_music"></foaf:interest>

</rdf:Description></foaf:knows>

</rdf:Description></rdf:RDF>

Если значением свойства является ресурс, у которого нет своих свойств,то URI этого ресурса можно указать не через вложенный элемент rdf:Description,а через атрибут rdf:resource

Пропустить эту нудятину про RDF/XML →

Page 68: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"xml:lang="ru"foaf:name="Вася Пупкин">

<schema:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-09-30</schema:birthDate><foaf:knows><rdf:Description rdf:about="http://example.com/masha"

foaf:name="Маша Пупкина"><foaf:interest rdf:resource="http://dbpedia.org/resource/Pop_music"></foaf:interest>

</rdf:Description></foaf:knows>

</rdf:Description></rdf:RDF>

Если значением свойства является строковый литерал,то его можно задать не через вложенный элемент, а через одноименный атрибут

Замечание: нельзя задать свой код языка (он может только наследоваться), свойства не могут повторяться

Пропустить эту нудятину про RDF/XML →

Page 69: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"xml:lang="ru"foaf:name="Вася Пупкин">

<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"></rdf:type><schema:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-09-30</schema:birthDate><foaf:knows><rdf:Description rdf:about="http://example.com/masha"

foaf:name="Маша Пупкина"><rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"></rdf:type><foaf:interest rdf:resource="http://dbpedia.org/resource/Pop_music"></foaf:interest>

</rdf:Description></foaf:knows>

</rdf:Description></rdf:RDF>

Тип ресурса указывается при помощи свойства rdf:type

Пропустить эту нудятину про RDF/XML →

Page 70: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.com/vasya"rdf:type="http://xmlns.com/foaf/0.1/Person"xml:lang="ru"foaf:name="Вася Пупкин">

<schema:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-09-30</schema:birthDate><foaf:knows><rdf:Description rdf:about="http://example.com/masha"

rdf:type="http://xmlns.com/foaf/0.1/Person"foaf:name="Маша Пупкина">

<foaf:interest rdf:resource="http://dbpedia.org/resource/Pop_music"></foaf:interest></rdf:Description>

</foaf:knows></rdf:Description>

</rdf:RDF>

Тип можно задать также через атрибут rdf:type

Пропустить эту нудятину про RDF/XML →

Page 71: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<foaf:Person rdf:about="http://example.com/vasya"xml:lang="ru"foaf:name="Вася Пупкин">

<schema:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-09-30</schema:birthDate><foaf:knows><foaf:Person rdf:about="http://example.com/masha"

foaf:name="Маша Пупкина"><foaf:interest rdf:resource="http://dbpedia.org/resource/Pop_music"></foaf:interest>

</foaf:Person></foaf:knows>

</foaf:Person></rdf:RDF>

Тег rdf:Description можно заменить на тег,соответствующий типу описываемого ресурса

Замечание: тип ресурса записывается с использованием префикса пространства имен

Пропустить эту нудятину про RDF/XML →

Page 72: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<foaf:Person rdf:about="http://example.com/vasya"xml:lang="ru"foaf:name="Вася Пупкин">

<schema:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-09-30</schema:birthDate><foaf:knows><foaf:Person rdf:about="http://example.com/masha"

foaf:name="Маша Пупкина"><foaf:interest rdf:resource="http://dbpedia.org/resource/Pop_music"></foaf:interest><foaf:knows><rdf:Description><rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"></rdf:type><foaf:name>Равшан</foaf:name>

</rdf:Description><foaf:knows>

</foaf:Person></foaf:knows>

</foaf:Person></rdf:RDF>

Анонимный ресурс — это просто ресурс, у которого нет URI

Пропустить эту нудятину про RDF/XML →

Page 73: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<foaf:Person rdf:about="http://example.com/vasya"xml:lang="ru"foaf:name="Вася Пупкин">

<schema:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-09-30</schema:birthDate><foaf:knows><foaf:Person rdf:about="http://example.com/masha"

foaf:name="Маша Пупкина"><foaf:interest rdf:resource="http://dbpedia.org/resource/Pop_music"></foaf:interest><foaf:knows rdf:parseType="Resource"><rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"></rdf:type><foaf:name>Равшан</foaf:name>

<foaf:knows></foaf:Person>

</foaf:knows></foaf:Person>

</rdf:RDF>

Если значением свойства является анонимный ресурс,то соответствующий ему элемент rdf:Description можно опустить.Для этого в элемент со свойством надо добавить атрибут rdf:parseType="Resource"

Пропустить эту нудятину про RDF/XML →

Page 74: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<foaf:Person rdf:about="http://example.com/vasya"xml:lang="ru"foaf:name="Вася Пупкин">

<schema:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-09-30</schema:birthDate><foaf:knows><foaf:Person rdf:about="http://example.com/masha"

foaf:name="Маша Пупкина"><foaf:interest rdf:resource="http://dbpedia.org/resource/Pop_music"></foaf:interest><foaf:knows rdf:type="http://xmlns.com/foaf/0.1/Person" foaf:name="Равшан" />

</foaf:Person></foaf:knows>

</foaf:Person></rdf:RDF>

А если свойствами анонимного ресурса являются только литералы и rdf:type,то их можно записать не в виде вложенных элементов, а в виде атрибутов

Замечание: свойства с одним и тем же именем не могут повторяться (не может быть два rdf:type или foaf:name)

Пропустить эту нудятину про RDF/XML →

Page 75: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/">

<foaf:Person rdf:about="http://example.com/vasya"xml:lang="ru"foaf:name="Вася Пупкин">

<schema:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-09-30</schema:birthDate><foaf:knows><foaf:Person rdf:about="http://example.com/masha"

foaf:name="Маша Пупкина"><foaf:interest rdf:resource="http://dbpedia.org/resource/Pop_music"></foaf:interest><foaf:knows rdf:nodeID="ravshan" />

</foaf:Person></foaf:knows><foaf:knows rdf:nodeID="ravshan" />

</foaf:Person><foaf:Person rdf:nodeID="ravshan" foaf:name = "Равшан" />

</rdf:RDF>

Иногда на анонимный ресурс требуется сослаться несколько раз.Для этого через атрибут rdf:nodeID ему надо присвоить спец. идентификатор,на которой через этот же атрибут можно ссылаться .

Пропустить эту нудятину про RDF/XML →

Page 76: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:schema="http://schema.org/"xml:base="http://example.com">

<foaf:Person rdf:about="/vasya"xml:lang="ru"foaf:name="Вася Пупкин">

<schema:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-09-30</schema:birthDate><foaf:knows><foaf:Person rdf:about="/masha"

foaf:name="Маша Пупкина"><foaf:interest rdf:resource="http://dbpedia.org/resource/Pop_music"></foaf:interest><foaf:knows rdf:nodeID="ravshan" />

</foaf:Person></foaf:knows><foaf:knows rdf:nodeID="ravshan" />

</foaf:Person><foaf:Person rdf:nodeID="ravshan" foaf:name = "Равшан" />

</rdf:RDF>

Абсолютные URI’и можно преобразовать в относительные.Для этого надо объявить базовый URI с помощью атрибута xml:base.

Пропустить эту нудятину про RDF/XML →

Page 77: Технологии Semantic Web. Часть II. Формат представления данных RDF

RDF/XML

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:xfn="http://gmpg.org/xfn/1#"xmlns:base="http://example.com">

<!-- Волк совсем потерял голову от трех поросят /--><rdf:Description rdf:about="/wolf"><xfn:crush rdf:parseType="Collection"><rdf:Description rdf:about="/nif-nif" /><rdf:Description rdf:about="/noof-noof" /><rdf:Description rdf:about="/naf-naf" />

</xfn:crush></rdf:Description>

</rdf:RDF>

Значением свойства может быть RDF-коллекция.Для этого надо установить атрибут rdf:parseType="Collection", и добавить члены коллекции в виде вложенных элементов.

Пропустить эту нудятину про RDF/XML →

Page 78: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div><h1>ООО «Хабр»</h1><img src="http://habrahabr.ru/images/1432119938/logo.svg"><span>105082, Москва, Спартаковский переулок, д. 2, стр. 1, секция 3

</span><span>+7 499 653-59-61</span><time datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a href="mailto:[email protected]">Напишете нам!</span>

</div>

Основная идея Microdata — на web-странице уже есть вся необходимая информация,надо только разметить ее в понятном машине виде.

Page 79: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div itemscope><h1>ООО «Хабр»</h1><img src="http://habrahabr.ru/images/1432119938/logo.svg"><span>105082, Москва, Спартаковский переулок, д. 2, стр. 1, секция 3

</span><span>+7 499 653-59-61</span><time datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a href="mailto:[email protected]">Напишете нам!</span>

</div>

Укажем, что данный HTML-элемент описывает некоторый объектс помощью атрибута itemscope.

Page 80: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div itemscope itemtype="http://schema.org/Organization"><h1>ООО «Хабр»</h1><img src="http://habrahabr.ru/images/1432119938/logo.svg"><span>105082, Москва, Спартаковский переулок, д. 2, стр. 1, секция 3

</span><span>+7 499 653-59-61</span><time datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a href="mailto:[email protected]">Напишете нам!</span>

</div>

Укажем тип этого объекта с помощью атрибута itemtype.

Page 81: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div itemscope itemtype="http://schema.org/Organization" itemid="http://tmtm.ru/"><h1>ООО «Хабр»</h1><img src="http://habrahabr.ru/images/1432119938/logo.svg"><span>105082, Москва, Спартаковский переулок, д. 2, стр. 1, секция 3

</span><span>+7 499 653-59-61</span><time datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a href="mailto:[email protected]">Напишете нам!</span>

</div>

Укажем его URI с помощью атрибута itemid.

Page 82: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div itemscope itemtype="http://schema.org/Organization" itemid="http://tmtm.ru/"><h1 itemprop="http://schema.org/name">ООО «Хабр»</h1><img itemprop="http://schema.org/logo" src="http://habrahabr.ru/images/1432119938/logo.svg"><span itemprop="http://schema.org/address">105082, Москва, Спартаковский переулок, д. 2, стр. 1, секция 3

</span><span itemprop="http://schema.org/telephone">+7 499 653-59-61</span><time itemprop="http://schema.org/openingHours" datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a itemprop="http://schema.org/email" href="mailto:[email protected]">Напишете нам!</span>

</div>

Разметим его свойства с помощью атрибута itemprop.

Page 83: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div itemscope itemtype="http://schema.org/Organization" itemid="http://tmtm.ru/"><h1 itemprop="name">ООО «Хабр»</h1><img itemprop="logo" src="http://habrahabr.ru/images/1432119938/logo.svg"><span itemprop="address">105082, Москва, Спартаковский переулок, д. 2, стр. 1, секция 3

</span><span itemprop="telephone">+7 499 653-59-61</span><time itemprop="openingHours" datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a itemprop="email" href="mailto:[email protected]">Напишете нам!</span>

</div>

URI свойств можно сократить.(См. подробности в: http://www.w3.org/TR/microdata-rdf/#property-uri-generation).

Page 84: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div itemscope itemtype="http://schema.org/Organization" itemid="http://tmtm.ru/"><h1 itemprop="name">ООО «Хабр»</h1><img itemprop="logo" src="http://habrahabr.ru/images/1432119938/logo.svg"><span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">105082, Москва, Спартаковский переулок, д. 2, стр. 1, секция 3

</span><span itemprop="telephone">+7 499 653-59-61</span><time itemprop="openingHours" datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a itemprop="email" href="mailto:[email protected]">Напишете нам!</span>

</div>

Значением свойства тоже может быть объект.

Page 85: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div itemscope itemtype="http://schema.org/Organization" itemid="http://tmtm.ru/"><h1 itemprop="name">ООО «Хабр»</h1><img itemprop="logo" src="http://habrahabr.ru/images/1432119938/logo.svg"><span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"><span itemprop="postalCode">105082</span>,<span itemprop="addressLocality">Москва</span>,<span itemprop="streetAddress">Спартаковский переулок, д. 2, стр. 1, секция 3</span>

</span><span itemprop="telephone">+7 499 653-59-61</span><time itemprop="openingHours" datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a itemprop="email" href="mailto:[email protected]">Напишете нам!</span>

</div>

И этот объект тоже имеет свои свойства.Чтобы отделить одни свойства от других, обернем их в HTML-элементы <span>.

Page 86: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div itemscope itemtype="http://schema.org/Organization" itemid="http://tmtm.ru/"><h1 itemprop="name">ООО «Хабр»</h1><img itemprop="logo" src="http://habrahabr.ru/images/1432119938/logo.svg"><span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"><span itemprop="postalCode">105082</span>,<span itemprop="addressLocality">Москва</span>,<span itemprop="streetAddress">Спартаковский переулок, д. 2, стр. 1, секция 3</span>

</span><span itemprop="telephone">+7 499 653-59-61</span><time itemprop="openingHours" datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a itemprop="email" href="mailto:[email protected]">Напишете нам!</span>

</div>

Обычно значение свойства — содержимое соответствующего HTML-элемента.

Page 87: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div itemscope itemtype="http://schema.org/Organization" itemid="http://tmtm.ru/"><h1 itemprop="name">ООО «Хабр»</h1><img itemprop="logo" src="http://habrahabr.ru/images/1432119938/logo.svg"><span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"><span itemprop="postalCode">105082</span>,<span itemprop="addressLocality">Москва</span>,<span itemprop="streetAddress">Спартаковский переулок, д. 2, стр. 1, секция 3</span>

</span><span itemprop="telephone">+7 499 653-59-61</span><time itemprop="openingHours" datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a itemprop="email" href="mailto:[email protected]">Напишете нам!</span>

</div>

Но у элементов <a> и <link> значение свойства берется из атрибута href.

Page 88: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div itemscope itemtype="http://schema.org/Organization" itemid="http://tmtm.ru/"><h1 itemprop="name">ООО «Хабр»</h1><img itemprop="logo" src="http://habrahabr.ru/images/1432119938/logo.svg"><span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"><span itemprop="postalCode">105082</span>,<span itemprop="addressLocality">Москва</span>,<span itemprop="streetAddress">Спартаковский переулок, д. 2, стр. 1, секция 3</span>

</span><span itemprop="telephone">+7 499 653-59-61</span><time itemprop="openingHours" datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a itemprop="email" href="mailto:[email protected]">Напишете нам!</span>

</div>

У элементов <img>, <video> и <audio> — из атрибута src.

Page 89: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div itemscope itemtype="http://schema.org/Organization" itemid="http://tmtm.ru/"><h1 itemprop="name">ООО «Хабр»</h1><img itemprop="logo" src="http://habrahabr.ru/images/1432119938/logo.svg"><span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"><span itemprop="postalCode">105082</span>,<span itemprop="addressLocality">Москва</span>,<span itemprop="streetAddress">Спартаковский переулок, д. 2, стр. 1, секция 3</span>

</span><span itemprop="telephone">+7 499 653-59-61</span><time itemprop="openingHours" datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a itemprop="email" href="mailto:[email protected]">Напишете нам!</span>

</div>

У элемента <time> — из атрибута datetime.(Атрибут содержит дату в машиночитаемом формате ISO 8601).

Page 90: Технологии Semantic Web. Часть II. Формат представления данных RDF

Microdata

<div itemscope itemtype="http://schema.org/Organization" itemid="http://tmtm.ru/"><h1 itemprop="name">ООО «Хабр»</h1><meta itemprop="logo" content="http://habrahabr.ru/images/1432119938/logo.svg"><span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"><span itemprop="postalCode">105082</span>,<span itemprop="addressLocality">Москва</span>,<span itemprop="streetAddress">Спартаковский переулок, д. 2, стр. 1, секция 3</span>

</span><span itemprop="telephone">+7 499 653-59-61</span><time itemprop="openingHours" datetime="Mo-Su 6:00-23:00">Работаем круглосуточно с 6:00 до 23:00

</time><a itemprop="email" href="mailto:[email protected]">Напишете нам!</span>

</div>

У элемента <meta> — из атрибута content.

Page 91: Технологии Semantic Web. Часть II. Формат представления данных RDF

Резюме

• RDF позволяет кому угодно сказать что угодно о каком угодно ресурсе — объекте реального мира, электронном документе или абстрактном понятии.

• Все ресурсы идентифицируются с помощью URI.

• Высказывания о ресурсах представляются в виде триплетов, состоящих из субъекта (описываемого ресурса), предиката (его свойства) и объекта (значения свойства).

• Триплеты объединяются в RDF-граф.

• Множество всех RDF-графов в сети представляет собой единый глобальный граф (GGG). Это развитие паутины документов (WWW).

• В качестве URI ресурса может выступать URL онтологии с его описанием, с помощью которой в RDF-графе могут выводиться новые данные.

• Абстрактный RDF-граф можно представать в текстовом виде в одном из форматов сериализации, например RDF/XML, Turtle или Microdata.