Лекция 12 (RDF) 3

advertisement
Кафедра «ОСУ»
Весенний семестр 2010/2011 уч. года
Языки описания информации
Лекция ХХХ.
Среда описания ресурсов RDF
Технологические уровни
«Semantic Web»
Введение в RDF
• RDF это среда (framework) для описания Web ресурсов,
таких, как информация о названии (title), авторе (author),
дате изменения (modification date), содержание (content) и
авторском праве (copyright) Web страницы.
• Пример RDF документа:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmlns:si=http://www.w3schools.com/rdf/>
<rdf:Description rdf:about=http://www.w3schools.com>
<si:title>W3Schools</si:title>
<si:author>Jan Egil Refsnes</si:author>
</rdf:Description>
</rdf:RDF>
Введение в RDF
Что такое RDF?
• Что такое RDF?
– RDF это сокращение для фразы Resource Description Framework (среда
описания ресурсов);
– RDF это структура (средство, каракас, инфраструктура) для описания
ресурсов, имеющихся в web сети;
– RDF разработано для чтения и понимания компьютерными программами;
– RDF не предназначено для работы с такими описаниями пользователей
(людей);
– RDF записывается на языке XML;
– RDF является частью работы организации W3C по созданию «Semantic Web»;
– RDF является стандартом организации W3C.
• Примеры использования RDF
– Описание свойств продаваемых товаров, таких, как цена и доступность (price
and availability).
– Описание расписаний (time schedules) для событий в web сети.
– Описание информации о web страницах (content, author, created и modified
date).
– Описание содержания (content) и оценки (rating) web картинок (pictures).
– Описание содержания для поисковых систем (search engines).
– Описание электронных библиотек.
Что такое RDF?
• RDF разработано для чтения и понимания компьютерными программами;
– RDF было разработано для предоставления общего способа описывать
информацию так, чтобы ее можно было читать и понимать компьютерными
программами.
– RDF описания не предназначаются для того, чтобы их показывать в web сети.
• RDF записывается на языке XML
– RDF документы записываются на языке XML. Язык XML, который используется
средой RDF называется RDF/XML.
– В результате использования XML, может легко обмениваться RDF
информацией между разными типами компьютеров, использующих разные
типы ОС и языков программирования.
• RDF и концепция “Semantic Web“
–
–
–
–
Язык RDF является частью деятельности W3C по разработке «Semantic Web».
Концепция W3C это будущий этап развития WWW, в котором:
Web информация имеет точный смысл.
Web информация может быть понята и обработана компьютерными
программами.
– Компьютеры могут интегрировать информацию из web сети.
Работы организации W3C, связанные с
RDF и OWL
• RDF и OWL это две важные технологии концепции Semantic Web
(Семантическая Паутина).
• Semantic Web это среда для совместного использования данных
компаниями, приложениями, предприятиями, сообществами и
людьми, независимо от используемой платформы и программного
обеспечения.
• RDF и OWL являются ключевыми технологиями Semantic Web.
– RDF - Resource Description Framework
• RDF это язык для описания Web ресурсов, например, таких, как заголовок,
автор, дата изменения, содержание и информация об авторском праве webстраницы.
– OWL - Web Ontology Language
• OWL построен над RDF и является языком для обработки информации в сети
Интернет.
– SPARQL - Query Language for RDF
• SPARQL предлагает разработчикам способ записи запросов к широкому набору
RDF информации в сети Интернет.
Описания стандартов и даты их
• … принятия организацией W3C
Specification
RDF
RDF
RDF
RDF
RDF
RDF
Draft / Proposal
Recommendation
Primer
Test Cases
Concept
Semantics
Schema
Syntax
10.
10.
10.
10.
10.
10.
Feb
Feb
Feb
Feb
Feb
Feb
2004
2004
2004
2004
2004
2004
OWL Overview
OWL Guide
OWL Reference
OWL Syntax
OWL Test Cases
OWL Use Cases
Parsing OWL in RDF
10.
10.
10.
10.
10.
10.
Feb
Feb
Feb
Feb
Feb
Feb
2004
2004
2004
2004
2004
2004
SPARQL Language
21. Jan 2004
15. Jan 2008
RDF модель данных
• Утверждениями являются триплеты вида <subject, predicate,
object>:
<Ian,hasColleague,Uli>
• Триплеты могут быть представлены в виде графа:
Ian
hasColleague
Uli
• Утверждения описывают свойства (properties) ресурсов.
• Ресурсом является любой объект, на который можно
сослаться с помощью URI:
– документ, картинка, параграф текста в Web сети;
– http://www.cs.man.ac.uk/index.html
– книга в библиотеке, реальный человек (?)
– isbn://5031-4444-3333
– …
• Сами свойства также являются ресурсом (имеют URI
идентификаторы)
URI идентификаторы
• URI = Uniform Resource Identifier
• «Обобщенное множество всех имен/адресов,
являющиеся короткими строками, которые являются
ссылками на ресурсы.»
• URL адреса (Uniform Resource Locators) являются
частным случаем ресурсов, которые доступны в WWW
(например, web-страницы).
• В RDF данных, URI идентификаторы обычно выглядят,
как “нормальные” URL адреса, часто с
идентификаторами фрагментов, указывающие на
конкретные части документа:
http://www.somedomain.com/some/path/to/file#fragmentID
Связывание утверждений
• Субъект одного утверждения может быть объектом для другого
утверждения.
• Такие коллекции утверждений формируют направленный,
размеченный граф.
Ian
hasColleague
Uli
hasColleague
Carole
hasHomePage
http://www.cs.mam.ac.uk/~sa
ttler
• Отметим, что объектом триплета может также быть “литерал”
(строка).
Синтаксис языка RDF
• RDF использует XML синтаксис, который имеет специальный
смысл:
– Каждый элемент Description описывает ресурс.
– Каждый атрибут или вложенный подэлемент в элементе
Description является свойством (property) данного Ресурса
(Resource).
– На ресурсы можно ссылаться с помощью URI:
<Description about="some.uri/person/ian_horrocks">
<hasColleague resource="some.uri/person/uli_sattler"/>
</Description>
<Description about="some.uri/person/uli_sattler">
<hasHomePage>http://www.cs.mam.ac.uk/~sattler</hasHomePage>
</Description>
<Description about="some.uri/person/carole_goble">
<hasColleague resource="some.uri/person/uli_sattler"/>
</Description>
Правила языка RDF
•
•
RDF идентифицирует объекты с помощью web-идентификаторов (URI) и
описывает ресурсы свойствами (properties) и значения свойств (property
values)
RDF описывает ресурсы свойствами (properties) и значения свойств (property
values).
•
•
•
•
Ресурс (resource) это любое понятие, которое может иметь URI, такое, как например:
"http://www.w3schools.com/rdf".
Свойство (property) это отношение ресурса с другими ресурсами или различными данными,
такие, как "author" или "homepage".
Значение свойства (property value) это объект, с которым связан ресурс (другой ресурс или
какое-то данное стандартного типа). Например, "Jan Egil Refsnes“ или
"http://www.w3schools.com" (note that a property value can be another resource)
Следующий RDF документ может описывать ресурс
"http://www.w3schools.com/rdf":
<?xml version="1.0"?>
<RDF>
<Description about="http://www.w3schools.com/rdf">
<author>Jan Egil Refsnes</author>
<homepage>http://www.w3schools.com</homepage>
</Description>
</RDF>
• Это упрощенный пример, в котором не задано пространство имен.
Утверждения языка RDF
• The combination of a Resource, a Property, and a Property value forms
a Statement (known as the subject, predicate and object of a
Statement).
• Let's look at some example statements to get a better understanding:
• Statement: "The author of http://www.w3schools.com/rdf is Jan Egil
Refsnes".
– The subject of the statement above is: http://www.w3schools.com/rdf
– The predicate is: author
– The object is: Jan Egil Refsnes
• Statement: "The homepage of http://www.w3schools.com/rdf is
http://www.w3schools.com".
– The subject of the statement above is: http://www.w3schools.com/rdf
– The predicate is: homepage
– The object is: http://www.w3schools.com
Пример RDF данных
• Таблица с двумя записями с описанием CD:
Title
Artist
Country
Company
Price
Year
Empire Burlesque
Bob Dylan
USA
Columbia
10.90
1985
Hide your heart
Bonnie Tyler
UK
CBS Records
9.90
1988
• Below is a few lines from an RDF document:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist>Bob Dylan</cd:artist> <cd:country>USA</cd:country>
<cd:company>Columbia</cd:company> <cd:price>10.90</cd:price>
<cd:year>1985</cd:year>
</rdf:Description>
<rdf:Description rdf:about="http://www.recshop.fake/cd/Hide your heart">
<cd:artist>Bonnie Tyler</cd:artist> <cd:country>UK</cd:country>
<cd:company>CBS Records</cd:company> <cd:price>9.90</cd:price>
<cd:year>1988</cd:year>
</rdf:Description>
.
.
.
</rdf:RDF>
Компоненты RDF
•
•
•
•
Формальная модель данных.
Синтаксис для обмена данными.
Система схемы типов (schema model).
Синтаксис для схем, понимаемых
программами.
• Протоколы запросов и профилей.
Модель данных RDF
• Imposes structural constraints on the expression
of application data models:
– For consistent encoding, exchange and processing of
metadata.
• Enables resource description communities to
define their own semantics.
• Provides for structural inter-operability.
Модель данных RDF
• Направленный размеченный граф.
• Элементы модели:
– Ресурс - Resource,
– Свойство - Property,
– Значение - Value,
– Утверждение - Statement.
Примитивы RDF модели
Property Type
Resource
Value
Value
Statement
Простой пример
Author
Resource
“Mark”
Простой пример
creator
“Mark”
Page.html
title
“Mark’s Homepage”
Базовая RDF модель
• Resources:
– All things being described by RDF expressions,
– Named by URI.
• Properties:
– A specific aspect, characteristic, attribute, or
relation used to describe a resource.
• How the characteristics of properties are
expressed? --> RDF schema.
Spring 2010
mark.baker@computer.org
Базовая модель RDF
• Утверждения (Statements):
– A specific resource together with a named
property plus the value of that property for that
resource,
– A statement consists of three elements:
1. Subject (resource),
2. Predicate (property),
3. Object (value).
Spring 2010
mark.baker@computer.org
Базовая модель RDF
• Пример:
Ora Lassila is the creator of the resource http://www.w3.org/Home/Lassila.
Subject (Resource)
http://www.w3.org/Home/Lassila
Predicate (Property)
Creator
Object (Value)
"Ora Lassila"
Базовая модель RDF
"http://www.w3.org/Home/Lassila”
Ora Lassila
• The direction of the arrow is important.
• The arc always starts at the subject and points to the object of
the statement.
• The simple diagram above may also be read
"http://www.w3.org/Home/Lassila has creator Ora Lassila", or in general
"<subject> HAS <predicate> <object>".
Базовый синтаксис RDF
• The RDF data model provides an abstract,
conceptual framework for defining and using
metadata.
• A concrete syntax, such as XML, is needed for
the purposes of creating and exchanging this
metadata.
• RDF also requires the XML namespace facility
to precisely associate each property with the
schema that defines the property
Базовый синтаксис RDF
Утверждение:
Ora Lassila is the creator of the resource http://www.w3.org/Home/Lassila.
Запись в формате RDF/XML:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://description.org/schema/">
<rdf:Description about="http://www.w3.org/Home/Lassila">
<s:Creator>Ora Lassila</s:Creator>
</rdf:Description>
</rdf:RDF>
Контейнеры
• Часто возникает необходимость ссылаться на коллекцию
ресурсов:
– Например, нужно сказать, что документ был составлен более чем
одним человеком, или перечислить студентов курса, или
перечислить программные модули в пакете.
• Для выполнения описания таких списков ресурсов или
литералов используются RDF контейнеры.
Модель контейнеров
• Bag:
– Не упорядоченный список ресурсов или литералов, в
котором не важен порядок обработки его частей.
• Sequence:
– Упорядоченный список ресурсов или литералов,
например, список значений, упорядоченных по
алфавиту.
• Alternative:
– Список ресурсов или литералов, который
представляет собой альтернативы для (одного)
значения свойства :
• Например, список зеркальных Интернет сайтов, в которых
может быть найден ресурс.
Модель контейнеров типа Bag
The students in course 6.001 are Amy, Tim, John, Mary, and Sue.
Модель контейнеров
The students in course 6.001 are Amy, Tim, John, Mary, and Sue.
<rdf:RDF>
<rdf:Description about="http://mycollege.edu/courses/6.001">
<s:students>
<rdf:Bag>
<rdf:li resource="http://mycollege.edu/students/Amy"/>
<rdf:li resource="http://mycollege.edu/students/Tim"/>
<rdf:li resource="http://mycollege.edu/students/John"/>
<rdf:li resource="http://mycollege.edu/students/Mary"/>
<rdf:li resource="http://mycollege.edu/students/Sue"/>
</rdf:Bag>
</s:students>
</rdf:Description>
</rdf:RDF>
Синтаксис RDF
• The RDF Model defines the formal relationships among
resources, properties and values.
• The Syntax is required to...
– Store instances of the model into files,
– Communicate files from one application to another.
• All based on W3C XML eXtensible Markup Language:
– http://www.w3.org/XML
Spring 2010
mark.baker@computer.org
Bringing it together
• RDF Metadata transmission:
– Embedded (e.g. <META>), transmitted with
resource (HTTP), trusted 3rd Party (HTTP GET).
• RDF Data Model:
– Support consistent encoding, exchange and
processing of metadata… critical when
aggregating data from multiple sources.
• RDF Schema:
– Declare, define, reuse vocabularies.
RDF Анализатор (Parser)
• Имеется хороший грамматический анализатор RDF
на web-сайте организации W3С:
http://www.w3.org/RDF/Validator/
This RDF parser will tell you if your XML
is in the proper RDF format.
Он-лайн валидаторы RDF документов
• W3C's RDF Validation Service (http://www.w3.org/RDF/Validator/) is
useful when learning RDF.
• Here you can experiment with RDF files.
• The online RDF Validator parses your RDF document, checks your
syntax, and generates tabular and graphical views of your RDF
document.
• Copy and paste the example below into W3C's RDF validator:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmlns:si="http://www.w3schools.com/rdf/">
<rdf:Description rdf:about=http://www.w3schools.com>
<si:title>W3Schools.com</si:title>
<si:author>Jan Egil Refsnes</si:author>
</rdf:Description>
</rdf:RDF>
Проверка и визуализация
созданных RDF документов
• Enter a URI or paste an RDF/XML document into the text field above. A 3tuple (triple) representation of the corresponding data model as well as an
optional graphical visualization of the data model will be displayed.
• Check by Direct Input
• Display Result Options:
Triples and/or Graph:
Graph format:
• Paste an RDF/XML document into the following text field to have it
checked. More options are available in the Extended interface.
• Check by URI
• Display Result Options:
Triples and/or Graph:
Graph format:
• Enter the URI for the RDF/XML document you would like to check. More
options are available in the Extended interface.
Результаты проверки
Основные элементы RDF
• Основными элементами RDF являются:
– корневой элемент <RDF>,
– элемент <Description>, который идентифицирует
ресурс.
• Элемент <rdf:RDF>
– <rdf:RDF> is the root element of an RDF document. It
defines the XML document to be an RDF document. It
also contains a reference to the RDF namespace:
• Например:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
...здесь записывается описание...
</rdf:RDF>
Элемент <rdf:Description>
•
The <rdf:Description> Element
– Элемент <rdf:Description> определяет ресурс с атрибутом “about”.
– Элемент <rdf:Description> содержит элементы, которые описывают данный ресурс:
• Например:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist>Bob Dylan</cd:artist>
<cd:country>USA</cd:country>
<cd:company>Columbia</cd:company>
<cd:price>10.90</cd:price>
<cd:year>1985</cd:year>
</rdf:Description>
</rdf:RDF>
•
•
Элементы artist, country, company, price и year определены в пространстве имен
http://www.recshop.fake/cd#. Данное пространство имен находится вне RDF (и не
является частью RDF). RDF описывает только framework.
Элементы artist, country, company, price и year должны быть определены в каком-то
другом месте (company, organization, person, etc).
Задание свойств в атрибутах
• Элементы свойств (property elements) также
могут быть описаны в виде атрибутов (а не в
виде элементов):
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque"
cd:artist="Bob Dylan" cd:country="USA"
cd:company="Columbia" cd:price="10.90"
cd:year="1985" />
</rdf:RDF>
Задание свойств в виде ресурсов
• Элементы описания свойств (property elements) также могут быть
определены в виде ресурсов:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist rdf:resource="http://www.recshop.fake/cd/dylan" />
...
…
</rdf:Description>
</rdf:RDF>
• В данном примере, свойство artist не имеет свойство (value), а
использует ссылку (reference) на ресурс (resource), который
содержит информацию о данном художнике (artist).
rdf:Description + rdf:type
•
•
Существует еще один способ представления в виде XML.
Он делает очень понятным, что выполняется описание чего-то, что это имеет
некоторый конкретный тип (type) (класс) :
<?xml version="1.0"?>
<rdf:Description rdf:about="http://www.china.org/geography/rivers#Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#">
<rdf:type rdf:resource="http://www.geodesy.org/river#River"/>
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</rdf:Description>
This is read as: "This is a Description about the resource http://www.china.org/geography/rivers#Yangtze.
This resource is an instance of the River type (class). The http://www.china.org/geography/rivers#Yangtze
resource has a length of 6300 kilometers, a startingLocation of western China's Qinghai-Tibet Plateau,
and an endingLocation of the East China Sea."
Note: this form of describing a resource is called the "long form". The form we have seen
previously is an abbreviation of this long form. An RDF Parser interprets the abbreviated form as
if it were this long form.
Варианты описания
• Альтернативно можно использовать атрибут rdf:ID вместо
атрибута rdf:about, как показано ниже:
<?xml version="1.0"?>
<rdf:Description rdf:ID="Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#"
xml:base="http://www.china.org/geography/rivers">
<rdf:type rdf:resource="http://www.geodesy.org/river#River"/>
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</rdf:Description>
Эквивалентные представления!
<?xml version="1.0"?>
<rdf:Description rdf:about="http://www.china.org/geography/rivers#Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#">
<rdf:type rdf:resource="http://www.geodesy.org/river#River"/>
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</rdf:Description>
В литературе по RDF данный пример
Обычно показывается в такой форме.
<?xml version="1.0"?>
<River rdf:about="http://www.china.org/geography/rivers#Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
<?xml version="1.0"?>
<River rdf:ID="Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#"
xml:base="http://www.china.org/geography/rivers">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
RDF контейнеры
• RDF контейнеры используются для описания группы
объектов (things).
• The following RDF elements are used to describe groups:
– <Bag>,
– <Seq>, and
– <Alt>.
• RDF Terms
– In the examples above we have talked about "list of values"
when describing the container elements.
– In RDF these "list of values" are called members.
• So, we have the following:
– A container is a resource that contains things
– The contained things are called members (not list of values)
Элемент <rdf:Bag>
• Элемент <rdf:Bag> используется для описания списка значений,
которые не должны находиться в заданном порядке.
• Элемент <rdf:Bag> может содержать повторяющиеся значения.
• Например:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description rdf:about="http://www.recshop.fake/cd/Beatles">
<cd:artist>
<rdf:Bag>
<rdf:li>John</rdf:li>
<rdf:li>Paul</rdf:li>
<rdf:li>George</rdf:li>
<rdf:li>Ringo</rdf:li>
</rdf:Bag>
</cd:artist>
</rdf:Description>
</rdf:RDF>
Элемент <rdf:Seq>
• Элемент <rdf:Seq>
– The <rdf:Seq> element is used to describe an ordered list of values (For example,
in alphabetical order).
– The <rdf:Seq> element may contain duplicate values.
• Example
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description rdf:about="http://www.recshop.fake/cd/Beatles">
<cd:artist>
<rdf:Seq>
<rdf:li>George</rdf:li>
<rdf:li>John</rdf:li>
<rdf:li>Paul</rdf:li>
<rdf:li>Ringo</rdf:li>
</rdf:Seq>
</cd:artist>
</rdf:Description>
</rdf:RDF>
Элемент <rdf:Alt>
• The <rdf:Alt> element is used to describe a list of alternative values
(the user can select only one of the values).
• Пример:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description rdf:about="http://www.recshop.fake/cd/Beatles">
<cd:format>
<rdf:Alt>
<rdf:li>CD</rdf:li>
<rdf:li>Record</rdf:li>
<rdf:li>Tape</rdf:li>
</rdf:Alt>
</cd:format>
</rdf:Description>
</rdf:RDF>
RDF коллекции
•
•
RDF коллекции описывают группы, которые collections describe groups that can
ONLY contain the specified members.
The rdf:parseType = "Collection" Attribute
– As seen in the previous chapter, a container says that the containing resources are members - it
does not say that other members are not allowed.
– RDF collections are used to describe groups that can ONLY contain the specified members.
– A collection is described by the attribute rdf:parseType="Collection".
• Пример:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmlns:cd="http://recshop.fake/cd#">
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles">
<cd:artist rdf:parseType="Collection">
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/George"/>
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/John"/>
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Paul"/>
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Ringo"/>
</cd:artist>
</rdf:Description>
</rdf:RDF>
Язык RDF Schema (RDFS)
• RDF Schema (RDFS) is an extension to RDF.
– RDF describes resources with classes, properties, and values.
– In addition, RDF also needs a way to define applicationspecific classes and properties. Application-specific classes
and properties must be defined using extensions to RDF.
– One such extension is RDF Schema.
• RDF Schema does not provide actual application-specific
classes and properties.
• Instead RDF Schema provides the framework to describe
application-specific classes and properties.
• Classes in RDF Schema are much like classes in object
oriented programming languages. This allows resources to
be defined as instances of classes, and subclasses of
classes.
•
Пример, демонстрирующий некоторые возможности языка RDFS:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.animals.fake/animals#">
<rdf:Description rdf:ID="animal">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdf:Description>
<rdf:Description rdf:ID="horse">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#animal"/>
</rdf:Description>
</rdf:RDF>
•
In the example above, the resource "horse" is a subclass of the class "animal".
Сокращенный пример
• Так как класс RDFS (class) является RDF ресурсом, то можно предыдущий
пример описать в более краткой форме
– используя rdfs:Class вместо rdf:Description и
– опустив элемент rdf:type :
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:rdfs=“http://www.w3.org/2000/01/rdf-schema#”
xml:base=“http://www.animals.fake/animals#”>
<rdfs:Class rdf:ID="animal" />
<rdfs:Class rdf:ID="horse">
<rdfs:subClassOf rdf:resource="#animal"/>
</rdfs:Class>
</rdf:RDF>
RDF Dublin Core Metadata Initiative
•
•
•
The Dublin Core Metadata Initiative (DCMI) has created some predefined properties for describing
documents.
The Dublin Core is a set of predefined properties for describing documents.
The first Dublin Core properties were defined at the Metadata Workshop in Dublin, Ohio in 1995 and is
currently maintained by the Dublin Core Metadata Initiative.
Property
Contributor
Definition
An entity responsible for making contributions to the content of the resource
Coverage
The extent or scope of the content of the resource
Creator
An entity primarily responsible for making the content of the resource
Format
The physical or digital manifestation of the resource
Date
Description
Identifier
A date of an event in the lifecycle of the resource
An account of the content of the resource
An unambiguous reference to the resource within a given context
Language
A language of the intellectual content of the resource
Publisher
An entity responsible for making the resource available
Relation
Rights
A reference to a related resource
Information about rights held in and over the resource
Source
A Reference to a resource from which the present resource is derived
Subject
Title
Type
A topic of the content of the resource
A name given to the resource
The nature or genre of the content of the resource
Пример RDF описания
• The following example demonstrates the use of some of the Dublin
Core properties in an RDF document:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmlns:dc= "http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:about="http://www.w3schools.com">
<dc:description>W3Schools - Free tutorials</dc:description>
<dc:publisher>Refsnes Data as</dc:publisher>
<dc:date>2008-09-01</dc:date>
<dc:type>Web Development</dc:type>
<dc:format>text/html</dc:format>
<dc:language>en</dc:language>
</rdf:Description>
</rdf:RDF>
Классы RDFS / RDF
Element
Class of
Subclass of
rdfs:Class
All classes
rdfs:Datatype
Data types
Class
rdfs:Resource
All resources
Class
rdfs:Container
Containers
Resource
rdfs:Literal
Literal values (text and numbers)
Resource
rdf:List
Lists
Resource
rdf:Property
Properties
Resource
rdf:Statement
Statements
Resource
rdf:Alt
Containers of alternatives
Container
rdf:Bag
Unordered containers
Container
rdf:Seq
Ordered containers
Container
rdfs:ContainerMembers
hipProperty
Container membership properties
Property
rdf:XMLLiteral
XML literal values
Literal
RDFS / RDF Properties
RDF Attributes
• Иерархия классов OWL и RDF/RDFS (отношения
подклассов).
Переход от XML документов к
RDF документам
Цель языка RDF
• Целью языка RDF (Resource Description Framework)
является предоставление стандартного способа
описания данных «о чем-либо».
• Ниже показан пример XML документа, который
описывает данные (specifies data) о китайской реке
Янцзы (China's Yangtze river):
<?xml version="1.0"?>
<River id="Yangtze” xmlns="http://www.geodesy.org/river">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet
Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
«Это данные об реке Yangtze (Янцзы). Она имеет длину 6300 киллометров.
Начинается startingLocation в западном China's Qinghai-Tibet Plateau.
Заканчивается endingLocation в East China Sea."
Переход от XML к RDF
Преобразование XML документа таким образом, чтобы он также стал правильным RD
XML
<?xml version="1.0"?>
<River id="Yangtze"
xmlns="http://www.geodesy.org/river">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
Yangtze.xml
“преобразуем"
<?xml version="1.0"?>
RDF
<River rdf:ID="Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
Yangtze.rdf
RDF формат
1 RDF предоставляет ID атрибут для идентификации описываемого ресурса (reso
2 Атрибут ID определен в пространстве имен RDF.
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<River rdf:ID="Yangtze“
xmlns="http://www.geodesy.org/river#">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
</rdf:RDF>
3
Добавляем к пространству имен символ
«идентификации фрагмента».
Moving from XML to RDF
Spring 2010
mark.baker@computer.org
Переход от XML к RDF
Resource
Property
Value
Spring 2010
mark.baker@computer.org
RDF формат (2)
2
Идентификаторы описываемого ресурса. Дан
ресурс являет экземпляром класса River.
1 Задается тип
<?xml version="1.0"?>
(класс) ресурса,
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
который описывается. <River rdf:ID="Yangtze“
3 Это свойства и
атрибуты, заданного
типа (класса).
xmlns="http://www.geodesy.org/river#">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
</rdf:RDF>
4 Это значения свойств.
Договоренности о задании
пространств имен
Ответ: RDF очень строго относится к уникальной идентификации
объектов – уникальной идентификации типа (класса) и уникальной
идентификации свойств.
При объединении заданного пространства имен с типом, получается
уникальный идентификатор типа, например,
http://www.geodesy.org/river#River
При объединении заданного пространства имен со свойством,
получается e уникальный идентификатор свойства, например:
Хорошая практика
Хорошая практика
Вопрос: Зачем символ "#" помещается в конец пространства имен?
Например: xmlns="http://www.geodesy.org/river#"
http://www.geodesy.org/river#length
http://www.geodesy.org/river#startingLocation
http://www.geodesy.org/river#endingLocation
Таким образом, добавление символа "#" является просто способом отделения
пространства имен от имени типа и имени свойства.
RDF формат
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<Class rdf:ID="Resource"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="uri">
<property> value </property>
<property> value </property>
...
</Class>
</rdf:RDF>
Преимущества использования RDF
формата
Суммарный эффект
Интероперабильность
•
•
Можно задать вопрос: «Зачем разработчик должен беспокоиться о том,
чтобы создаваемые XML документы соответствовали RDF формату?"
Ответ: в результате Вы получаете несколько преимуществ:
– Если RDF формат будет широко использоваться, то это поможет сделать язык
XML более подходящим для взаимодействия (интероперабельным):
• Программные инструменты могут сразу описать структуру, «данный элемент имеет
следующий тип (класс), а здесь описаны его свойства”.
• RDF способствует использованию стандартизированных словарей (онтологий) ...
стандартизированных типов (классов) и стандартизированных свойств.
– RDF формат предоставляет более структурированный подход к
проектированию XML документов. RDF формат является стандартным (regular),
постоянно повторяющимся (recurring) шаблоном.
– Он позволяет быстро выявить слабости и несогласованности в разработке XML
документов, которые не соответствуют RDF формату (non-RDF-compliant XML
designs). Он помогает лучше понимать описываемые данные!
– Разработчик получает преимущества от обоих стандартов :
• Можно использовать стандартные XML редакторы и валидаторы для создания,
редактирования и проверки XML документа.
• Можно использовать RDF инструменты для выполнения логического вывода
(inferencing) на описываемых данных.
– RDF формат подготавливает используемые данные для работы в Semantic Web!
Недостатки использования RDF
формата
• Большее количество ограниченный: RDF формат
ограничивает разработчика в том, как он может
проектировать свой XML (например, он не
проектировать свой XML любым произвольным
способом).
• RDF использует пространства имен для уникальной
идентификации типов (классов), свойств и ресурсов.
В связи с этим нужно хорошо понимать работу с
пространствами имен (namespaces).
• Необходимость изучить другой XML словарь: для
использования RDF формата необходимо изучить
словарь языка RDF.
Уникально идентифицируй ресурс
• Раннее уже отмечалось, что RDF очень требователен к
уникальной идентификации типов (классов) и свойств. Язык
RDF также очень требователен и к уникальной
идентификации ресурсов, например,
Это описываемый ресурс. Требуется уникально
идентифицировать этот ресурс.
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<River rdf:ID="Yangtze“
xmlns="http://www.geodesy.org/river#">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
</rdf:RDF>
Атрибут rdf:ID
•
•
Значением атрибута rdf:ID является “относительный идентификатор URI".
“Абсолютный URI" получается в результате конкатенации URL адреса XML
документа с символом"#”, а затем со значением rdf:ID, например,
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<River rdf:ID="Yangtze“
xmlns="http://www.geodesy.org/river#">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
</rdf:RDF>
Yangtze.rdf
Предположим, что RDF/XML документ располагается по URL адресу:
http://www.china.org/geography/rivers. Тогда полным URI для данного ресурса будет:
http://www.china.org/geography/rivers#Yangtze
Атрибут xml:base
•
•
•
На предыдущем слайде было показано, как URL адрес документа
используется в качестве основы для URI идентификатора.
Однако основываться на местоположении документа очень не надежно: URL
адрес будет меняться при перемещении документа или его копировании в
другое место.
Более надежным решением является задание базового URI в документе,
например:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<River rdf:ID="Yangtze“
xmlns="http://www.geodesy.org/river#"
xml:base="http://www.china.org/geography/rivers">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
</rdf:RDF>
URI ресурса = конкатенация (xml:base, '#', rdf:ID)
= конкатенация (http://www.china.org/geography/rivers, '#', "Yangtze")
= http://www.china.org/geography/rivers#Yangtze
Атрибут rdf:about
• Вместо идентификации ресурса с помощью относительного URI
(который затем требует присоединения базового URI), можно
задавать полный идентификатор. Однако, для этого нужно
использовать вместо атрибута rdf:ID, атрибут rdf:about:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<River rdf:about="http://www.china.org/geography/rivers#Yangtze"
xmlns="http://www.geodesy.org/river#">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet
Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
</rdf:RDF>
Триплет = (ресурс-свойство-значение)
http://www.china.org/geography/rivers#Yangtze has a http://www.geodesy.org/river#length of 6300 kilometers
resource
property
value
http://www.china.org/geography/rivers#Yangtze has a http://www.geodesy.org/river#startingLocation of western China's ...
resource
property
value
http://www.china.org/geography/rivers#Yangtze has a http://www.geodesy.org/river#endingLocation of East China Sea
resource
property
value
RDF формат = триплеты!
• Фундаментальным шаблоном проектирования RDF является представление
XML данных в виде набора триплетов (resource/property/value)!
значение
свойства-A
значение
свойства-B
<?xml version="1.0"?>
<Resource-A>
<property-A>
<Resource-B>
<property-B>
<Resource-C>
<property-C>
Value-C
</property-C>
</Resource-C>
</property-B>
</Resource-B>
</property-A>
</Resource-A>
Notice that the RDF design pattern is an
alternating sequence of resource-property
This pattern is known as "striping".
Значением свойства может быть литерал (например, length имеет значение 6300 км.).
Но кроме этого, значением свойства может быть другой ресурс, как показано выше
(например, свойство-A имеет значение Resource-B, свойство-B имеет значение ResourceC). Далее будет показан пример свойства, которое в качестве значения имеет другой
ресурс.
Соглашение об именовании
• Хорошим стилем именования является
использование больших букв в начале имени типа
(class) и использование маленьких букв в начале
имени свойства (property).
– Это помогает быстрее выделять шаблоны (striping
pattern).
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<River rdf:about=“http://www.china.org/geography/rivers#Yangtze”
большие
xmlns="http://www.geodesy.org/river#">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
маленькие
<endingLocation>East China Sea</endingLocation>
</River>
</rdf:RDF>
Графовая RDF модель
Легенда:
Эллипс обозначает «Ресурс»
Прямоугольник обозначает «литеральное строковое значение»
rdf:Description + rdf:type
•
•
Имеется также и другой способ представления XML.
Этот способ делает очень понятным, что что-то описывается, и это
делает очень явным то, какой тип (class) объекта описывается :
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://www.china.org/geography/rivers#Yangtze"
xmlns="http://www.geodesy.org/river#">
<rdf:type rdf:resource="http://www.geodesy.org/river#River"/>
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</rdf:Description>
</rdf:RDF>
Это читается следующим образом: «Это Описание (Description) ресурса
http://www.china.org/geography/rivers#Yangtze. Данный ресурс является экземпляром типа (класса)
River. Ресурс http://www.china.org/geography/rivers#Yangtze имеет длину (length) “6300 kilometers”,
startingLocation - western China's Qinghai-Tibet Plateau, а endingLocation - East China Sea."
Замечание: такая форма описания ресурса называется «полной формой». Та форма, которая
использовалась ранее является сокращением такой полной формы. RDF анализаторы
понимают сокращенную форму, как если бы использовалась полная форма.
Варианты описания
• Альтернативно можно использовать rdf:ID, вместо
атрибута rdf:about, как показано ниже:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:ID="Yangtze"
xmlns="http://www.geodesy.org/river#"
xml:base="http://www.china.org/geography/rivers">
<rdf:type rdf:resource="http://www.geodesy.org/river#River"/>
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</rdf:Description>
</rdf:RDF>
Эквивалентные представления!
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<River rdf:ID="Yangtze" xmlns="http://www.geodesy.org/river#"
xml:base="http://www.china.org/geography/rivers">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
</rdf:RDF>
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<River rdf:about="http://www.china.org/geography/rivers#Yangtze"
xmlns="http://www.geodesy.org/river#">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
</rdf:RDF>
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=http://www.china.org/geography/rivers#Yangtze
xmlns="http://www.geodesy.org/river#">
<rdf:type rdf:resource="http://www.geodesy.org/river#River"/>
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</rdf:Description>
</rdf:RDF>
Замечание: в литературе по
RDF данный пример обычно
показывается в этой форме.
Пространство имен RDF
http://www.w3.org/1999/02/22-rdf-syntax-ns#
ID
about
type
resource
Description
Терминология
• В литературе по RDF используется следующая
терминология:
– Субъект (Subject) – этот термин ссылается на элемент, который
играет роль ресурса.
– Предикат (Predicate) – этот термин ссылается на элемент,
который играет роль свойства (ресурса).
– Объект (Object) – этот термин ссылается на элемент, который
играет роль значения (свойства).
Субъект
предикат
Объект
Эквивалентно!
Ресурс
свойство
Значение
RDF Анализатор (Parser)
• Имеется очень хороший RDF анализатор на
web-сайте организации W3C:
http://www.w3.org/RDF/Validator/
This RDF parser will tell you if your XML
is in the proper RDF format.
Do Lab1
Пример #2
Изменим XML документ, таким образом, чтобы он согласовывался с языком RDF:
<?xml version="1.0"?>
<River id="Yangtze"
xmlns="http://www.geodesy.org/river">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
<Dam id="ThreeGorges"
xmlns="http://www.geodesy.org/dam">
<name>The Three Gorges Dam</name>
<width>1.5 miles</width>
<height>610 feet</height>
<cost>$30 billion</cost>
</Dam>
</River>
Yangtze2.xml
Отметим два типа (класса)
River
Экземпляр: Yangtze
Свойства:
• length
• startingLocation
• endingLocation
Dam
Экземпляр: ThreeGorges
Свойства:
• name
• width
• height
• cost
Экземпляр Dam находится не на правильном
месте
Dam
<?xml version="1.0"?>
<River id="Yangtze"
xmlns="http://www.geodesy.org/river">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
<Dam id="ThreeGorges"
xmlns="http://www.geodesy.org/dam">
<name>The Three Gorges Dam</name>
<width>1.5 miles</width>
<height>610 feet</height>
<cost>$30 billion</cost>
</Dam>
</River>
Типы (классы) содержат свойства. Здесь показан тип River, который содержит
свойства - length, startingLocation и endingLocation. Также показано, что тип River
содержит другой тип - Dam. Таким образом имеется Ресурс который содержит
другой Ресурс. Это не согласуется с RDF шаблоном проектирования. (как было
сказано, преимуществом использования RDF – выявление несогласованностей в
XML проектировании.)
Значением свойства должен быть литерал
или ресурс
<length>6300 kilometers</length>
свойство
Value is a Literal
свойство
Значением является
ресурс
<obstacle>
<Dam id="ThreeGorges"
xmlns="http://www.geodesy.org/dam">
<name>The Three Gorges Dam</name>
<width>1.5 miles</width>
<height>610 feet</height>
<cost>$30 billion</cost>
</Dam>
</obstacle>
Измененный XML
(для соответствия формату RDF)
<?xml version="1.0"?>
<River id="Yangtze"
xmlns="http://www.geodesy.org/river">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
<obstacle>
<Dam id="ThreeGorges"
xmlns="http://www.geodesy.org/dam">
<name>The Three Gorges Dam</name>
<width>1.5 miles</width>
<height>610 feet</height>
<cost>$30 billion</cost>
</Dam>
</obstacle>
</River>
Yangtze2,v2.xml
«Река (river) Yangtze имеет препятствие (obstacle), которое является дамбой (Dam)
ThreeGorges. Эта дамба (Dam) имеет имя (name) - The Three Gorges Dam. Она имеет
длину 1.5 miles, высоту 610 feet и стоимость $30 billion."
RDF формат
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<River rdf:ID="Yangtze“
xmlns="http://www.geodesy.org/river#"
Добавим
xml:base="http://www.china.org/geography/rivers">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
<obstacle>
<Dam rdf:ID="ThreeGorges"
xmlns="http://www.geodesy.org/dam#">
<name>The Three Gorges Dam</name>
Изменим id на rdf:ID <width>1.5 miles</width>
<height>610 feet</height>
<cost>$30 billion</cost>
</Dam>
</obstacle>
Добавим символ '#’
</River>
</rdf:RDF>
Как обычно, возможны и другие представления с использованием атрибута
rdf:about и элемента rdf:Description.
RDF Модель (граф)
Теперь предположим, что кто-то уже создал документ, содержащий информацию
о дамбе «Three Gorges Dam»:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<Dam rdf:ID="ThreeGorges“
xmlns="http://www.geodesy.org/dam#"
xml:base="http://www.china.org/geography/rivers">
<name>The Three Gorges Dam</name>
<width>1.5 miles</width>
<height>610 feet</height>
<cost>$30 billion</cost>
</Dam>
</rdf:RDF>
Three-Gorges-Dam.rdf
Тогда мы можем сослаться на ресурс «Three Gorges Dam» с помощью атрибута
rdf:resource, как показано ниже:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<River rdf:ID="Yangtze“
xmlns="http://www.geodesy.org/river#"
xml:base="http://www.china.org/geography/rivers">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
<obstacle rdf:resource="http://www.china.org/geography/rivers#ThreeGorges"/>
</River>
</rdf:RDF>
Yangtze.rdf
Замечание: ссылка делается на
ресурс, а не на файл
Почему используется такая ссылка:
<obstacle rdf:resource="http://www.china.org/geography/rivers#ThreeGorges"/>
а не такая:
<obstacle rdf:resource="http://www.china.org/geography/rivers/Three-Gorges-Dam.rdf"/>
То есть, почему не используется ссылка на «файл»?
Ответ:
1. Что будет, если файл переместится? Тогда данная ссылка будет не верна.
2. By using an identifier of the Three Gorges Dam, and keeping a particular file unspecified,
then an "aggregator tool" will be able to collect information from all the files that talk
about the Three Gorges Dam resource (see next slide).
Do Lab2
Любой, в Любом месте, в Любое время
может сказать что-нибудь о Ресурсе
• Во всех рассмотренных экземплярах были предоставлены
уникальные идентификаторы ресурсов, например,
http://www.china.org/geography/rivers#Yangtze
• Следовательно, если в другом RDF документе используется
ресурс с таким же идентификатором, то данные которые
описаны в этом документе являются дополнительными
данными об описанном нами ресурсе.
• Средства интеграции (aggregator tool) будут способны
собирать все данные о ресурсе и показывать объединенный
набор данных для описанного нами ресурса.
• Это очень мощная возможность!
Что лучше rdf:ID или rdf:about ?
• Когда должен использоваться rdf:ID? А когда
должен использоваться rdf:about?
– When you want to introduce a resource, and provide an
initial set of information about a resource use rdf:ID
– When you want to extend the information about a
resource use rdf:about
• The RDF philosophy is akin to the Web philosophy. That is,
anyone, anywhere, anytime can provide information about a
resource.
<?xml version="1.0"?>
<River rdf:about="http://www.china.org/geography/rivers#Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
http://www.china.org/geography/rivers/yangtze.rdf
<?xml version="1.0"?>
<River rdf:about="http://www.china.org/geography/rivers#Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#">
<name>Dri Chu - Female Yak River</name>
<name>Tongtian He, Travelling-Through-the-Heavens River</name>
<name>Jinsha Jiang, River of Golden Sand</name>
</River>
http://www.encyclopedia.org/yangtze-alternate-names.rdf
Система интеграции собирает данные (aggregator tool) собирает
данные о реке Yangtze
<?xml version="1.0"?>
<River rdf:about="http://www.china.org/geography/rivers#Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
<name>Dri Chu - Female Yak River</name>
<name>Tongtian He, Travelling-Through-the-Heavens River</name>
<name>Jinsha Jiang, River of Golden Sand</name>
</River>
Aggregated Data!
A distributed network of data
<?xml version="1.0"?>
<Dam rdf:ID="ThreeGorges"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/dam#"
xml:base="http://www.china.org/geography/rivers">
<name>The Three Gorges Dam</name>
<width>1.5 miles</width>
<height>610 feet</height>
<cost>$30 billion</cost>
</Dam>
Другой пример агрегирования
http://www.encyclopedia.org/three-gorges-dam.rdf
Aggregate!
<?xml version="1.0"?>
<River rdf:ID="Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#"
xml:base="http://www.china.org/geography/rivers">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
<obstacle rdf:resource="http://www.china.org/geography/rivers #ThreeGorges"/>
</River>
http://www.china.org/geography/rivers/yangtze.rdf
<?xml version="1.0"?>
<River rdf:ID="Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#"
xml:base="http://www.china.org/geography/rivers">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
<obstacle>
<Dam rdf:ID="ThreeGorges"
xmlns="http://www.geodesy.org/dam#">
<name>The Three Gorges Dam</name>
<width>1.5 miles</width>
<height>610 feet</height>
<cost>$30 billion</cost>
</Dam>
</obstacle>
</River>
Отметим, что ссылка на ресурс
ThreeGorges Dam была заменена н
Ту информацию, которую интеграт
смог найти об этом ресурсе!
Пример #3
Отметим, что в этом XML документе не задан уникальный идентификатор:
XML
<?xml version="1.0"?>
<River xmlns="http://www.geodesy.org/river#">
<name>Yangtze</name>
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
Yangtze3.xml
RDF
<?xml version="1.0"?>
<River xmlns="http://www.geodesy.org/river#">
<name>Yangtze</name>
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
Yangtze3.rdf
Данный RDF является
идентичным XML
документу!
Интерпретация RDF
<?xml version="1.0"?>
<River xmlns="http://www.geodesy.org/river#">
<name>Yangtze</name>
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
Yangtze3.rdf
This is read as: "This is an instance of the River type (class). The River has a
name of Yangtze, a length of 6300 kilometers, a startingLocation of western
China's Qinghai-Tibet Plateau, and an endingLocation of the East China Sea."
В данном документе ресурс является анонимным – он не имеет идентификатора.
Недостаток анонимных ресурсов
<?xml version="1.0"?>
<River xmlns="http://www.geodesy.org/river#">
<name>Yangtze</name>
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
http://www.china.org/geography/rivers/yangtze.rdf
<?xml version="1.0"?>
<River xmlns="http://www.geodesy.org/river#">
<name>Yangtze</name>
<name>Dri Chu - Female Yak River</name>
<name>Tongtian He, Travelling-Through-the-Heavens River</name>
<name>Jinsha Jiang, River of Golden Sand</name>
</River>
http://www.encyclopedia.org/yangtze-alternate-names.rdf
Aggregate
An aggregator tool will not be able to determine if these
documents are talking about the same resource.
Пример #4
XML
<?xml version="1.0"?>
<River id="Yangtze"
xmlns="http://www.geodesy.org/river"
xmlns:uom="http://www.measurements.org/units-of-measure">
<length uom:units="kilometers">6300</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
Yangtze4.xml
RDF
<?xml version="1.0"?>
<River rdf:ID="Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#"
xmlns:uom="http://www.measurements.org/units-of-measure#">
<length>
<rdf:Description>
<rdf:value>6300</rdf:value>
<uom:units>kilometers</uom:units>
</rdf:Description>
</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
Yangtze4.rdf
<?xml version="1.0"?>
<River id="Yangtze"
xmlns="http://www.geodesy.org/river"
xmlns:uom="http://www.measurements.org/units-of-measure#">
<length uom:units="kilometers">6300</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
Yangtze4.xml
RDF does not allow attributes on the properties (except for special RDF attributes such as
rdf:resource). So we need to make the uom:units attribute a child element.
Your first instinct might be to modify length to have two child elements:
<?xml version="1.0"?>
<River id="Yangtze"
xmlns="http://www.geodesy.org/river"
xmlns:uom="http://www.measurements.org/units-of-measure#">
<length>
<value>6300</value>
<uom:units>kilometers</uom:units>
</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
However, now
the length
property has
as its value two
values.
RDF only
binary relations
i.e., a single
value for a
property.
Атрибут rdf:value
6300
length
kilometers
Свойство length имеет два значения - 6300 и kilometers.
RDF предоставляет специальное свойство rdf:value, которое
можно использовать для задания «основного» значения.
В данном примере, 6300 это основное значение, а kilometers
это значение, которое предоставляет дополнительную
информацию о основном значении.
RDF формат
Анонимный
ресурс
<?xml version="1.0"?>
<River rdf:ID="Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#"
xmlns:uom="http://www.measurements.org/units-of-measure#">
<length>
<rdf:Description>
<rdf:value>6300</rdf:value>
<uom:units>kilometers</uom:units>
</rdf:Description>
</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
Yangtze4.rdf
Следует читать: «Река (River) Yangtze имеет длину (length), значение
которой является ресурсом, имеющим значение 6300 и единицу измерения
kilometers.
Преимущества анонимных
ресурсов
<rdf:Description>
<rdf:value>6300</rdf:value>
<uom:units>kilometers</uom:units>
</rdf:Description>
•
•
•
•
•
Показано описание анонимного ресурса.
Единственной его целью является предоставление
контекста для двух свойств (properties).
Другим RDF документам не потребуется развивать данный
ресурс.
В связи с этим, в данном случае нет необходимости
задавать данному ресурсу идентификатор.
В таком случае разумно использовать автономный ресурс.
Графовая RDF модель
Легенда:
Анонимный ресурс (также называемый «пустой вершиной»
"blank node"). Это ресурс без идентификатора.
(Замечание: RDF парсеры обычно генерируют для анонимных
ресурсов уникальные идентификаторы, чтобы отличать один
анонимный ресурс от другого.)
rdf:parseType="Resource"
Если значение свойства состоит из нескольких значений, то одной из возможностей
его описания является создание анонимного ресурса.
RDF предоставляет специальное сокращение (shorthand) rdf:parseType="Resource",
чтобы не создавать элемент rdf:Description:
<?xml version="1.0"?>
<River rdf:ID="Yangtze"
xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmlns=http://www.geodesy.org/river#
xmlns:uom="http://www.measurements.org/units-of-measure#">
<length rdf:parseType="Resource">
<rdf:value>6300</rdf:value>
<uom:units>kilometers</uom:units>
</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
Yangtze4,v2.rdf
Данная запись аналогична записи анонимного ресурса на предыдущем слайде.
Эквивалентно!
<length>
<rdf:Description>
<rdf:value>6300</rdf:value>
<uom:units>kilometers</uom:units>
</rdf:Description>
</length>
<length rdf:parseType="Resource">
<rdf:value>6300</rdf:value>
<uom:units>kilometers</uom:units>
</length>
Do Lab3
Итоговый пример
Требуется изменить следующий XML документ, чтобы он также стал
правильным (valid) RDF документом:
<?xml version="1.0"?>
<River id="Yangtze"
xmlns="http://www.geodesy.org/river"
xmlns:uom="http://www.measurements.org/units-of-measure#">
<length uom:units="kilometers">6300</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
<Dam id="ThreeGorges"
xmlns="http://www.geodesy.org/dam">
<name>The Three Gorges Dam</name>
<width>1.5 miles</width>
<height>610 feet</height>
<cost>$30 billion</cost>
</Dam>
</River>
Yangtze.xml
Смотри следующий слайд -->
RDF формат!
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<River rdf:ID="Yangtze“
xmlns="http://www.geodesy.org/river#"
xmlns:uom="http://www.measurements.org/units-of-measure#"
xml:base="http://www.china.org/geography/rivers">
<length rdf:parseType="Resource">
<rdf:value>6300</rdf:value>
<uom:units>kilometers</uom:units>
</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
<obstacle>
<Dam rdf:ID="ThreeGorges"
xmlns="http://www.geodesy.org/dam#">
<name>The Three Gorges Dam</name>
<width>1.5 miles</width>
<height>610 feet</height>
<cost>$30 billion</cost>
</Dam>
</obstacle>
</River>
</rdf:RDF>
Yangtze.rdf
После относительно
небольших изменений
данный XML документ
можно использовать как
с помощью XML
инструментов , так и с
помощью and RDF
инструментов!
Графовая RDF модель
Пример #5
Требуется изменить следующий XML документ, чтобы он также стал правильным (valid)
RDF документом:
<?xml version="1.0"?>
<River id="Yangtze"
xmlns="http://www.geodesy.org/river"
xmlns:uom="http://www.measurements.org/units-of-measure#">
<length uom:units="kilometers">6300</length>
<maxWidth uom:units="meters">175</maxWidth>
<maxDepth uom:units="meters">55</maxDepth>
</River>
<?xml version="1.0"?>
<River rdf:ID="Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#"
xmlns:uom="http://www.measurements.org/units-of-measure#">
<length rdf:parseType="Resource">
<rdf:value>6300</rdf:value>
<uom:units>kilometers</uom:units>
</length>
<maxWidth rdf:parseType="Resource">
<rdf:value>175</rdf:value>
<uom:units>meters</uom:units></maxWidth>
<maxDepth rdf:parseType="Resource">
<rdf:value>55</rdf:value>
<uom:units>kilometers</uom:units>
</maxDepth>
</River>
Yangtze5.xml
Это только один из
способов выполнения этого.
Далее будет показан более
хороший способ - используя
«типизированные
литералы".
(См. следующий слайд)
Yangtze5.rdf
Альтернативный RDF формат
<?xml version="1.0"?>
<River rdf:ID="Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#">
<length rdf:datatype="http://www.uom.org/distance#kilometer">6300</length>
<maxWidth rdf:datatype="http://www.uom.org/distance#meter">175</maxWidth>
<maxDepth rdf:datatype="http://www.uom.org/distance#meter">55</maxDepth>
</River>
Yangtze5.rdf
С помощью rdf:datatype можно задать значению свойства метку типа данных (datatype.)
Значение rdf:datatype действует в качестве семантической метки для типа данных
(datatype) значения.
Такое значение называется типизированным литералом (typed literal).
Для данного примера должно быть задано пространство имен,
http://www.uom.org/distance#, которое определяет два типа данных (datatypes) –
kilometer и meter.
На следующем слайде показано, как это сделать с помощью XML Schemas.
Определение типов данных (datatypes)
kilometer и meter с помощью XML Schemas
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.uom.org/distance#">
<simpleType name="kilometer">
<restriction base="integer">
</restriction>
</simpleType>
<simpleType name="meter">
<restriction base="integer">
</restriction>
</simpleType>
</schema>
uom.xsd
Другой пример использования
rdf:datatype
<?xml version="1.0"?>
<Person rdf:ID="JohnSmith"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.person.org#">
<age rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">30</age>
</Person>
В данном примере задается, что значение (30) возраста
(age) является не отрицательным целым числом
nonNegativeInteger (данный тип определен в пространстве
имен XML Schema).
Пример #6
Требуется изменить следующий XML документ, так, чтобы он также был
правильным (valid) RDF документом:
<?xml version="1.0"?>
<WeatherReading xmlns="http://www.meteorology.org#">
<Weather>
<temperature>-2 degrees Celsius</temperature>
<barometer>30.4 (rising)</barometer>
</Weather>
<Location xmlns="http://www.geodesy.org#">
<country>USA</country>
<state>Massachusetts</state>
<city>Boston</city>
</Location>
<datetime>January 22, 2003, 11:15 EST</datetime>
</WeatherReading>
WMUR_TV_WeatherReading.xml
Общие замечания
1. Данный XML документ использует три типа (класса):
WeatherReading
Weather
Location
2. Все 3 экземпляра типов являются анонимными. Следовательно, мы не
можем получить пользу от других и другие не могут получить пользу от
нас. Когда имеет смысл задавать идентификаторы для экземпляров?
- В общем случае, корневой элемент должен иметь идентификатор.
- Имеется множество информации о городе Boston. Давайте зададим
идентификатор для экземпляра Location.
Изменение 1: Добавление идентификаторов
<?xml version="1.0"?>
<WeatherReading id="BOS-012203-1115"
xmlns="http://www.meteorology.org#">
<Weather>
<temperature>-2 degrees Celsius</temperature>
<barometer>30.4 (rising)</barometer>
</Weather>
<Location id="BOS"
xmlns="http://www.geodesy.org#">
<country>USA</country>
<state>Massachusetts</state>
<city>Boston</city>
</Location>
<datetime>January 22, 2003, 11:15 EST</datetime>
</WeatherReading>
WMUR_TV_WeatherReading,v2.xml
Изменение 2: Создание свойств для типов
Weather и Location
Типы (классы) содержат свойства. Необходимо обернуть типы Weather и Location в
свойства (property):
<?xml version="1.0"?>
<WeatherReading id="BOS-012203-1115"
xmlns="http://www.meteorology.org#">
<instrumentReading>
<Weather>
<temperature>-2 degrees Celsius</temperature>
<barometer>30.4 (rising)</barometer>
</Weather>
</instrumentReading>
<instrumentLocation>
<Location id="BOS"
xmlns="http://www.geodesy.org#">
<country>USA</country>
<state>Massachusetts</state>
<city>Boston</city>
</Location>
</instrumentLocation>
<datetime>January 22, 2003, 11:15 EST</datetime>
</WeatherReading>
WMUR_TV_WeatherReading,v3.xml
Полученный RDF формат!
<?xml version="1.0"?>
<WeatherReading rdf:ID="BOS-012203-1115"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.meteorology.org#"
xml:base="http://www.wmur-tv.com/weather">
<instrumentReading>
<Weather>
<temperature>-2 degrees Celsius</temperature>
<barometer>30.4 (rising)</barometer>
</Weather>
</instrumentReading>
<instrumentLocation>
<Location rdf:ID="BOS"
xmlns="http://www.geodesy.org#"
xml:base="http://www.airports.org/icao">
<country>USA</country>
<state>Massachusetts</state>
<city>Boston</city>
</Location>
</instrumentLocation>
<datetime>January 22, 2003, 11:15 EST</datetime>
</WeatherReading>
WMUR_TV_WeatherReading.rdf
Тип (класс) rdf:Bag
• Тип rdf:Bag используется для представления не
упорядоченной коллекции.
Пример #7
Требуется изменить следующий XML документ, так, чтобы он также был правильным
(valid) RDF документом:
<?xml version="1.0"?>
<Meeting id="XML-Design-Patterns"
xmlns="http://www.business.org">
<attendees>
<name>John Smith</name>
<name>Sally Jones</name>
</attendees>
</Meeting>
DesignMeeting.xml
<?xml version="1.0"?>
<Meeting rdf:ID="XML-Design-Pattern"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.business.org#">
<attendees>
<rdf:Bag>
<name>John Smith</name>
<name>Sally Jones</name>
</rdf:Bag>
</attendees>
</Meeting>
DesignMeeting.rdf
rdf:Bag makes it clear
that this is an unordered
collection of names.
Тип (класс) rdf:Alt
• Тип rdf:Alt используется для описания набора
альтернативных свойств.
Пример #8
Требуется изменить следующий XML документ, так, чтобы он также был правильным (valid)
RDF документом:
<?xml version="1.0"?>
<Retailer id="BarnesAndNoble"
xmlns="http://www.retailers.org">
<webLocation>
<url>http://www.bn.com</url>
<url>http://www.barnesandnoble.com</url>
</webLocation>
</Retailer>
<?xml version="1.0"?>
<Retailer rdf:ID="BarnesAndNoble"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.retailers.org#">
<webLocation>
<rdf:Alt>
<url>http://www.bn.com</url>
<url>http://www.barnesandnoble.com</url>
</rdf:Alt>
</webLocation>
</Retailer>
BarnesAndNoble.xml
BarnesAndNoble.rdf
rdf:Alt makes it clear
that the urls listed are
alternates, i.e., choose
one of them.
Тип (класс) rdf:Seq
• Тип rdf:Seq используется для описания
последовательности (sequence) свойств.
Пример #9
Требуется изменить следующий XML документ, так, чтобы он также был правильным (valid)
RDF документом:
<?xml version="1.0"?>
<ToDoList id="MondayMeetings"
xmlns="http://www.reminders.org">
<activities>
<activity1>Meet with CEO at 10am</activity1>
<activity2>Luncheon at The Eatery</activity2>
<activity3>Flight at 3pm</activity3>
</activities>
</ToDoList>
MyDaysActivities.xml
<?xml version="1.0"?>
<ToDoList rdf:ID="MondayMeetings"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.reminders.org#">
<activities>
<rdf:Seq>
<activity1>Meet with CEO at 10am</activity1>
<activity2>Luncheon at The Eatery</activity2>
<activity3>Flight at 3pm</activity3>
</rdf:Seq>
</activities>
</ToDoList>
MyDaysActivities.rdf
rdf:Seq makes it clear
that the activities listed
are to be done in the
sequence listed.
Свойство rdf:li
• Свойство rdf:li ("list item") предоставляется
языком RDF для использования совместно с
rdf:Bag, rdf:Alt или rdf:Seq.
• The rdf:li property is provided for you to specify
an item in a Bag/Alt/Seq.
• An RDF Parser will replace each rdf:li with rdf:_1,
rdf:_2, rdf:_3, etc.
• The following slide recasts the previous examples
using the rdf:li property.
<?xml version="1.0"?>
<Retailer rdf:ID="BarnesAndNoble"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.retailers.org#">
<webLocation>
<rdf:Alt>
<rdf:li>http://www.bn.com</rdf:li>
<rdf:li>http://www.barnesandnoble.com</rdf:li>
</rdf:Alt>
</webLocation>
</Retailer>
BarnesAndNoble.rdf
<?xml version="1.0"?>
<ToDoList rdf:ID="MondayMeetings"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.reminders.org#">
<activities>
<rdf:Seq>
<rdf:li>Meet with CEO at 10am</rdf:li>
<rdf:li>Luncheon at The Eatery</rdf:li>
<rdf:li>Flight at 3pm</rdf:li>
</rdf:Seq>
</activities>
</ToDoList>
MyDaysActivities.rdf
<?xml version="1.0"?>
<Meeting rdf:ID="XML-Design-Pattern"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.business.org#">
<attendees>
<rdf:Bag>
<rdf:li>John Smith</rdf:li>
<rdf:li>Sally Jones</rdf:li>
</rdf:Bag>
</attendees>
</Meeting>
DesignMeeting.rdf
Пример #10
Требуется изменить следующий XML документ, так, чтобы он также был
правильным (valid) RDF документом:
<?xml version="1.0"?>
<Catalogue xmlns="http://www.publishing.org#"
xmlns:dc="http://pur1.org/metadata/dublin-core#">
<Book>
<dc:Title>Lateral Thinking</dc:Title>
<dc:Creator>Edward de Bono</dc:Creator>
<dc:Date>1973</dc:Date>
<ISBN>0-06-099325-2</ISBN>
<dc:Publisher>Harper & Row</dc:Publisher>
</Book>
<Book>
<dc:Title>Illusions: The Adventures of a Reluctant Messiah</dc:Title>
<dc:Creator>Richard Bach</dc:Creator>
<dc:Date>1977</dc:Date>
<ISBN>0-440-34319-4</ISBN>
<dc:Publisher>Dell Publishing Co.</dc:Publisher>
</Book>
<Book>
<dc:Title>The First and Last Freedom</dc:Title>
<dc:Creator>J. Krishnamurti</dc:Creator>
<dc:Date>1954</dc:Date>
<ISBN>0-06-064831-7</ISBN>
<dc:Publisher>Harper & Row</dc:Publisher>
</Book>
</Catalogue>
Barnes_and_Noble _BookCatalogue.xml
Note: regrettably,
the Dublin Core
does
not conform to the
RDF naming
conventions. Hence,
you see properties
with the first letter
capitalized.
Общие замечания
1. The XML document uses two types (classes):
Catalogue
Book
2. All type instances are anonymous. Consequently,
we cannot benefit from others, and others cannot
benefit from us. Where does it make sense to give
the instance an identifier?
- In general, the root element should have an identifier.
- There is lots of information about each book instance.
Let's give each book instance an identifier (the ISBN).
Изменение1: Добавление
идентификаторов
<?xml version="1.0"?>
<Catalogue id="BookCatalogue"
xmlns="http://www.publishing.org#"
xmlns:dc="http://pur1.org/metadata/dublin-core#">
<Book id="_0-06-099325-2">
<dc:Title>Lateral Thinking</dc:Title>
<dc:Creator>Edward de Bono</dc:Creator>
<dc:Date>1973</dc:Date>
<dc:Publisher>Harper & Row</dc:Publisher>
</Book>
<Book id="_0-440-34319-4">
<dc:Title>Illusions: The Adventures of a Reluctant Messiah</dc:Title>
<dc:Creator>Richard Bach</dc:Creator>
<dc:Date>1977</dc:Date>
<dc:Publisher>Dell Publishing Co.</dc:Publisher>
</Book>
<Book id="_0-06-064831-7">
<dc:Title>The First and Last Freedom</dc:Title>
<dc:Creator>J. Krishnamurti</dc:Creator>
<dc:Date>1954</dc:Date>
<dc:Publisher>Harper & Row</dc:Publisher>
</Book>
</Catalogue>
Why was an underscore
placed in front of the
ISBN?
Answer: The ID datatype
does not allow an
identifier to begin with
a digit. So, we
(arbitrarily) decided to
use an underscore.
Barnes_and_Noble _BookCatalogue,v2.xml
Notice that the ISBN elements were deleted and their values used as identifiers.
Изменение 2: Создание свойств для типа Book
Types (classes) contain properties. We need to wrap the Book type within a property:
<?xml version="1.0"?>
<Catalogue id="BookCatalogue"
xmlns="http://www.publishing.org#"
xmlns:dc="http://pur1.org/metadata/dublin-core#">
<item>
<Book id="_0-06-099325-2">
<dc:Title>Lateral Thinking</dc:Title>
<dc:Creator>Edward de Bono</dc:Creator>
<dc:Date>1973</dc:Date>
<dc:Publisher>Harper & Row</dc:Publisher>
</Book>
</item>
<item>
<Book id="_0-440-34319-4">
<dc:Title>Illusions: The Adventures of a Reluctant Messiah</dc:Title>
<dc:Creator>Richard Bach</dc:Creator>
<dc:Date>1977</dc:Date>
<dc:Publisher>Dell Publishing Co.</dc:Publisher>
</Book>
</item>
<item>
<Book id="_0-06-064831-7">
<dc:Title>The First and Last Freedom</dc:Title>
<dc:Creator>J. Krishnamurti</dc:Creator>
<dc:Date>1954</dc:Date>
<dc:Publisher>Harper & Row</dc:Publisher>
</Book>
</item>
</Catalogue>
Barnes_and_Noble _BookCatalogue,v3.xml
Полученный RDF формат!
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<Catalogue rdf:ID="BookCatalogue“
xmlns="http://www.publishing.org#"
xmlns:dc="http://pur1.org/metadata/dublin-core#"
xml:base="http://www.bn.com">
<item>
<Book rdf:ID="_0-06-099325-2"
xml:base="http://www.publishing.org/book">
<dc:Title>Lateral Thinking</dc:Title>
<dc:Creator>Edward de Bono</dc:Creator>
<dc:Date>1973</dc:Date>
<dc:Publisher>Harper & Row</dc:Publisher>
</Book>
</item>
<item>
<Book rdf:ID="_0-440-34319-4"
xml:base="http://www.publishing.org/book">
<dc:Title>Illusions: The Adventures of a Reluctant Messiah</dc:Title>
<dc:Creator>Richard Bach</dc:Creator>
<dc:Date>1977</dc:Date>
<dc:Publisher>Dell Publishing Co.</dc:Publisher>
</Book>
…
</item>
Barnes_and_Noble_BookCatalogue.rdf
</Catalogue>
</rdf:RDF>
Dublin Core (dc:)
• Dublin Core это стандартный набор свойств:
Content
Intellectual
Property
Instance
Title
Subject
Description
Language
Relation
Coverage
Source
Creator
Publisher
Contributor
Rights
Date
Type
Format
Identifier
Note: many people use these properties in their HTML today. For example:
<META NAME="DC.Creator" CONTENT="John Smith">
rdf:parseType="Collection"
• This may be added as an attribute of a property to
indicate that the contents of the property is a list
of resources.
• The following slide recasts the BookCatalogue
example to use this list type.
<?xml version="1.0"?>
<Catalogue rdf:ID="BookCatalogue"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.publishing.org#"
xmlns:dc="http://pur1.org/metadata/dublin-core#"
xml:base="http://www.bn.com">
<books rdf:parseType="Collection">
<Book rdf:ID="_0-06-099325-2"
xml:base="http://www.publishing.org/book">
<dc:Title>Lateral Thinking</dc:Title>
<dc:Creator>Edward de Bono</dc:Creator>
<dc:Date>1973</dc:Date>
<dc:Publisher>Harper & Row</dc:Publisher>
</Book>
<Book rdf:ID="_0-440-34319-4"
xml:base="http://www.publishing.org/book">
<dc:Title>Illusions: The Adventures of a Reluctant Messiah</dc:Title>
<dc:Creator>Richard Bach</dc:Creator>
<dc:Date>1977</dc:Date>
<dc:Publisher>Dell Publishing Co.</dc:Publisher>
</Book>
...
</books>
</Catalogue>
Barnes_and_Noble_BookCatalogue.rdf
Do Lab4
Пример#11
Требуется изменить следующий XML документ, так, чтобы он также был правильным (valid) RDF документом:
<?xml version="1.0"?>
<Article id="QuickBrownFox"
xmlns="http://www.publishing.org">
<paragraph>
The quick brown <bold>fox</bold> jumped over the lazy dog.
An important person once said "<quote>Now is the time for all
good men to come to the aid of their country</quote>"
</paragraph>
</Article>
The paragraph contains
"mixed content".
QuickBrownFox.xml
<?xml version="1.0"?>
<Article rdf:ID="QuickBrownFox"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.publishing.org#">
<paragraph rdf:parseType="Literal">
The quick brown <bold>fox</bold> jumped over the lazy dog.
An important person once said "<quote>Now is the time for all
good men to come to the aid of their country</quote>"
</paragraph>
</Article>
QuickBrownFox.rdf
rdf:parseType="Literal"
indicates that the content
of paragraph is to be
treated simply as literal
XML, i.e., tools shouldn't try
to parse the content into
resource/property/value triples.
rdf:parseType="Literal"
• In all of the previous examples the data was
structured as resource/property/value triples.
• Sometimes it doesn't make sense to do such
structuring
– Example: with mixed content
• In those cases we can simply indicate "hey, the
content of this property is okay. Treat it as a literal
XML string."
Опасность использования
rdf:parseType="Literal"
• The advantage of structuring your XML as
resource/property/value triples is enhanced
interoperability.
• When you use rdf:parseType="Literal" you lose the
ability for a tool to instantly take advantage of the
resource/property/value structure (since you are,
by definition, saying that the data doesn't have
this structure).
• Lesson Learned: use rdf:parseType="Literal"
sparingly!
Пример #12
Требуется изменить следующий XML документ, так, чтобы он также был правильным
(valid) RDF документом:
XML
<?xml version="1.0"?>
<River id="Yangtze"
xmlns="http://www.geodesy.org/river"
length="6300 kilometers"
startingLocation="western China's Qinghai-Tibet Plateau"
endingLocation="East China Sea"/>
Отметим, что используются
атрибуты, а не дочерние
элементы!
Yangtze.xml
RDF
<?xml version="1.0"?>
<River rdf:ID="Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#"
xmlns:r="http://www.geodesy.org/river#"
r:length="6300 kilometers"
r:startingLocation="western China's Qinghai-Tibet Plateau"
r:endingLocation="East China Sea"/>
Yangtze.rdf
RDF формат также
позволяет
использовать атрибуты!
Атрибуты
• Recall that at the very beginning of this tutorial we
said that a resource has properties (attributes).
• Thus, a property can be represented either as a child
element, or as an attribute.
• (Of course, a property can only be represented as an
attribute if it has a literal value, not a structured
value.)
Эквивалентно!
<?xml version="1.0"?>
<River rdf:ID="Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#">
<length>6300 kilometers</length>
<startingLocation>western China's Qinghai-Tibet Plateau</startingLocation>
<endingLocation>East China Sea</endingLocation>
</River>
<?xml version="1.0"?>
<River rdf:ID="Yangtze"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.geodesy.org/river#"
xmlns:r="http://www.geodesy.org/river#"
r:length="6300 kilometers"
r:startingLocation="western China's Qinghai-Tibet Plateau"
r:endingLocation="East China Sea"/>
Do Lab5
Пример #13
Требуется изменить следующий XML документ, так, чтобы он также был правильным (val
RDF документом: <?xml version="1.0"?>
<Resume xmlns="http://www.resume.org#">
<Person xmlns="http://www.person.org#">
<name>John Smith</name>
<phone>555-1212</phone>
<email>abc@def.com</email>
</Person>
<experience>
<Job>
<startDate>1995-01-01</startDate>
<endDate>1999-01-01</endDate>
<title>researcher</title>
<employer>Some Corp</employer>
<employerHomepage>http://www.company.org</employerHomepage>
<description>Cool stuff</description>
</Job>
</experience>
<skills>
<Skill name="Oracle" yrs="13"/>
<Skill name="Java" yrs="3"/>
</skills>
<education>
<Degree type="BS" school="RPI" year="1987"/>
</education>
</Resume>
<?xml version="1.0"?>
<Resume rdf:ID="JSmith-2003"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.resume.org#"
xml:base="http://www.jsmith.com/resume">
<about>
<Person xmlns="http://www.person.org#">
<name>John Smith</name>
<phone>555-1212</phone>
<email>abc@def.com</email>
</Person>
</about>
<experience rdf:parseType="Collection">
<Job>
<startDate>1995-01-01</startDate>
<endDate>1999-01-01</endDate>
<title>researcher</title>
<employer>
<Company xmlns="http://www.company.org#">
<name>Some Corp</name>
<homepage>http://www.company.org</homepage>
</Company>
</employer>
<description>Cool stuff</description>
</Job>
</experience>
<skills rdf:parseType="Collection">
<Skill>
<name>Oracle</name>
<yearsExperience>13</yearsExperience>
</Skill>
<Skill>
<name>Java</name>
<yearsExperience>3 </yearsExperience>
</Skill>
</skills>
<education rdf:parseType="Collection">
<Degree xmlns="http://www.schools.com#">
<type>BS</type>
<school>RPI</school>
<graduationYear>1987</graduationYear>
</Degree>
</education>
</Resume>
Заключение
• В данной презентации было показано, что часто
путем небольшого изменения, «обычные XML"
документы можно сделать согласуемыми с
языком RDF.
• Рекомендуется использовать RDF формат во всех
XML документах.
• Преимущества полученные в результате
форматирования XML документа в виде RDF
намного превышают возможные недостатки
(необходимости структурировать XML в
специфический формат и необходимости изучать
новый словарь).
RDF Summary
• RDF is a general-purpose framework.
• RDF provides structured, machineunderstandable metadata for the Web.
• Metadata vocabularies can be developed
without central coordination.
• RDF Schemas describe the meaning of each
property name.
Spring 2010
mark.baker@computer.org
Инструменты для работы с RDF
Spring 2010
mark.baker@computer.org
Инструменты для работы с RDF
Spring 2010
mark.baker@computer.org
Инструменты для работы с RDF
Spring 2010
mark.baker@computer.org
Инструменты для работы с RDF
Spring 2010
mark.baker@computer.org
Инструменты для работы с RDF
Spring 2010
mark.baker@computer.org
Инструменты для работы с RDF
Spring 2010
mark.baker@computer.org
Инструменты для работы с RDF
Spring 2010
mark.baker@computer.org
Инструменты для работы с RDF
Spring 2010
mark.baker@computer.org
Download