Alik_--_Semantic_Web-1
.pdfКоллекция
Коллекция подобна списку в языке Lisp. Для ее создания создается ресурс относящийся к классу rdf:list и имеющий два свойства:
•rdf:first (голова) — первый элемент коллекции;
•rdf:rest (хвост) — ссылка на под-коллекцию, содержащую оставшиеся элементы.
Под-коллекция также содержит голову и хвост. Хвост под-коллекции, содержащей последний элемент указывает на встроенный ресурс rdf:nil.
Христианская Троица состоит из Бога-отца, Бога-Сына и Святого Духа и ни из кого больше по определению.
|
rdf:list |
|
rdf:type |
|
|
:состоит-из |
rdf:first |
|
|
|
рпц:бог-отец |
|
rdf:rest |
|
рпц:троица |
|
|
rdf:type |
rdf:first |
|
rdf:list |
|
рпц:бог-сын |
|
|
|
|
rdf:rest |
|
rdf:type |
rdf:first |
рпц:дух-святой |
rdf:list |
|
|
|
|
rdf:rest
rdf:nil
Сериализация RDF
Сериализация — это представление RDF в текстовом виде
RDF — это абстрактная модель распределенного графа, а не формат файла.
Существует несколько форматов представления её в текстовом виде:
•RDF/XML — XML формат для записи RDF.
•Основанные на Notation3:
•Turtle — формат, специально разработанный для представления именно RDF.
•N-Triples — формат, записывающий RDF в виде простого набора триплетов.
•RDFa — способ записи RDF внутри атрибутов тегов HTML-страницы.
RDF/XML
RDF/XML — формат представления RDF в виде XML
Является официальным стандартом W3C.
Преимущества:
Стандартный формат, понимается всеми приложениями.
Возможность встраивания в XML-документы.
SVG — основанный на XML формат векторной графики поддерживает встраивание RDF-метаданных.
Возможность использования всей мощи аппарата XML, например XPath, XSLT.
Примером является метод визуализации RDF с помощью XSLT-преобразования в формат web-страницы.
Недостатки:
Громоздкий синтаксис: неудобен для чтения и редактирования человеком.
Занимает много места.
RDF/XML
Пример представления RDF-графа в формате RDF/XML:
<rdf:RDF xmlns: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:toby@segaran.com"/> <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:colin@semprog.com"/> </foaf:Person>
</foaf:knows> <foaf:knows>
<foaf:Person>
<foaf:name>Jamie Taylor</foaf:name>
<foaf:mbox rdf:resource="mailto:jamie@semprog.com"/> </foaf:Person>
</foaf:knows> </foaf:Person>
</rdf:RDF>
<!-- (Из книги Segaran, Evans, Taylor «Programming the Semantic Web») -->
Turtle
Turtle — основанный на Notatation3 синтаксис, специально разработанный для представления RDF
Имеет широкое распространение и понимается большинством приложений, но не является официальным стандартом.
Однако, используется как часть официального стандарта языка запросов SPARQL для описания графовых шаблонов.
Преимущества:
Удобен для чтения и редактирования человеком.
Компактен.
Недостатки:
Понимается большинством, но, всё-таки, не всеми приложениями.
Не поддерживает возможности XML: создание составных документов, XSLT, …
Turtle
Пример представления RDF-графа в формате Turtle:
@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:jamie@semprog.com>; foaf:name "Jamie Taylor"];
foaf:mbox <mailto:toby@segaran.com>; 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:colin@semprog.com>; foaf:name "Colin Evans".
# (Из книги Segaran, Evans, Taylor «Programming the Semantic Web»)
N-Triples
N-Triples — максимально упрощенный, основанный на Turtle, синтаксис для записи RDF в виде простого набора триплетов
Синтаксис N-Triples часто используется при тестировании SW-приложений, когда нужно проверить из каких конкретно триплетов состоит RDF-граф.
Преимущества:
Крайне простой синтаксис, удобный для генерации и разбора программами.
Недостатки:
Все недостатки лежащего в его основе формата Turtle (см. пред. раздел), плюс:
Не удобен для чтения и редактирования человеком.
Занимает достаточно много места.
N-Triples
Пример представления RDF-графа в формате N-Triples:
<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:toby@segaran.com>. <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:jamie@semprog.com>.
_: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:colin@semprog.com>.
<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»)
RDFa
Недостатком предыдущих форматов сериализации является дублирование информации: для машин в формате RDF, и для людей в формате HTML.
Формат RDFa свободен от подобного недостатка.
RDFa — это способ записи RDF-графа внутри атрибутов тегов HTML-страницы
Благодаря RDFa, уже существующая на web-странице информация не дублируется, а просто помечается понятным машине образом.
Преимущества:
Отсутствие дублирования информации для людей и для машин.
Недостатки:
Если SW-приложению нужен только RDF-граф, ему придется загружать ненужную HTML-разметку; и наоборот, если пользователю нужна только webстраница, ему, все равно, придется загружать RDFa-описания.
RDFa
Пример внедрения RDF в атрибуты тегов HTML-страницы (подсвечено):
<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:jamie@semprog.com">jamie@semprog.com</a> </p>
</li> </ul>
</div>
<!-- (Из книги Segaran, Evans, Taylor «Programming the Semantic Web») -->