Комментарии 8
a foaf:Person;
foaf:name "Alice";
foaf:mbox ;
foaf:homepage http://www.example.com/people/alice>
Убери, пожалуйста, лишние переводы строк.
foaf:name "Alice";
foaf:mbox ;
foaf:homepage http://www.example.com/people/alice>
Убери, пожалуйста, лишние переводы строк.
это мысли в слух, а вывод?
Сказали "а" - говорите "б". Из принципа не пошел в ваш блог, хотя тема мне интересна
web.archive.org/web/20080103025408/http://futuri.us/2007/12/20/semanticheskomu-vebu-krutye-adresa/
2. Не будьте двусмысленными.
Не должно быть путаницы между URI документа или любого другого объекта. Адрес должен определять только одно и не может использоваться для описания реального объекта и веб-документа.
Как же нам решить сложившуюся проблему? Если нельзя использовать адреса документа для указания реальных объектов, то как же нам восстановить описание объекта в паутине?
Легко изобразить желаемые отношения между документами и объектами при помощи небольшой диаграммки.
uris.png
Есть два способа решения проблемы. 303 URI и hashURI. Оба имеют свои преимущества и недостатки и разняться в применении когда RDF используется отдельно от HTML и когда семантическая информация вшита в код страницы HTML.
hashURI
Это привычные адреса со значком #. Грубо говоря ссылка на отдельный кусок страницы. Тогда ссылку на Алису (как на человека) приобретает такой вид www.example.com/about#alice
uris.png
303 URIs
Использует код статуса HTTP “303 See other”. Идея, что после анализа запроса клиенту выдается нужная ему страничка. И не всегда это запрашиваемый адрес.
uris.png
Принцип работы прост. Сервер получает такой запрос:
GET /people/alice HTTP/1.1Host: www.example.comAccept: text/html, application/xhtml+xmlAccept-Language: en, de
Accept: text/html, application/xhtml+xml — клиенту нужна веб-страничка и притом на английском или немецком языках. (Accept-Language: en, de)
Согласно этому перенаправляем его на страницу, которая максимально удовлетворяет запросу:
HTTP/1.1 302 FoundLocation: www.example.com/people/alice.en.html
Теперь мы можем описать Алису в N3:
<www.example.com/id/alice> foaf:page <www.example.com/people/alice>;rdfs:isDefinedBy <www.example.com/data/alice>; a foaf:Person;
foaf:name “Alice”;
foaf:mbox <mailto:alice@example.com>;
…
Можно добавить немного связи для пущей уверенности, указав в теле документа про Алис, что у нее есть описание и в машиночитаемом формате.
Alice's Homepage
<link rel=«alternate» type=«application/rdf+xml»
title=«RDF Version»
href=«www.example.com/data/alice” />
…
Тогда диаграмма принимает такой вид:
uris.png
Перефразируя: «Просто всю страницу считать Алисой нельзя, но зато Алисой можно считать 1) часть страницы, начинающуюся с букмарка, и 2) всю страницу, если при специальном запросе с этого же адреса документа в формате rdf будет отдаваться документ в формате rdf»
В общем, изначальная посылка про «нельзя» («На www.example.com/people/alice нельзя, потому что по правилам <URI-Алисы> a foaf:Person; должно содержать именно ссылку на человека.») — бред.
А статья — неполный огрызок информации про варианты выдачи rdf-а с веб-сервера, и соответственно, формирования ссылок на них в самом rdf.
В общем, изначальная посылка про «нельзя» («На www.example.com/people/alice нельзя, потому что по правилам <URI-Алисы> a foaf:Person; должно содержать именно ссылку на человека.») — бред.
А статья — неполный огрызок информации про варианты выдачи rdf-а с веб-сервера, и соответственно, формирования ссылок на них в самом rdf.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Семантическому вебу — крутые адреса!