Семантическому вебу — крутые адреса!

    Небольшое лирическое отступление. Глядя на историю веба, понимаешь что делали как в хороших городках: сначала клали основные тротуары. В добавок к этому люди протаптывали удобные тропинки. А потом эти тропинки (там где людям удобно) асфальтировали, и получалось все хорошо. Так и в вебе. Сначала появился довольно убогий HTML, который до нашего времени разросся практически в универсальный и совершенный инструмент. Потому что доделывали его так, что б было удобно, основываясь на опыте, а не на тычке пальцем в небо.

    Так вот, W3C поглядев, как люди привязывают к одному адресу FOAF, OpenID и что-нибудь еще решили стандартизировать это все и сделать более умным.

    Задачу они себе поставили — стандартизировать URI тут я приведу выводы их последнего драфта.

    К примеру есть корпорация Example Inc. там работают Алиса и Боб.
    www.example.com
    the homepage of Example Inc.
    www.example.com/people/alice
    the homepage of Alice
    www.example.com/people/bob
    the homepage of Bob



    Сформулируем проблему?

    Предположим компания хочет выпендриться и опубликовать информацию об Алисе в формате N3
    <URI-Алисы> a foaf:Person;
    foaf:name "Alice";
    foaf:mbox <mailto:alice@example.com>;
    foaf:homepage <http://www.example.com/people/alice>


    По всем правилам RDF <URI-Алисы> должно содержать ссылку на нее. Но ссылку куда? На www.example.com/people/alice нельзя, потому что по правилам <URI-Алисы> a foaf:Person; должно содержать именно ссылку на человека.

    Читать далее в моем блоге >>
    Поделиться публикацией

    Похожие публикации

    Комментарии 8

      +1
      a foaf:Person;
      foaf:name "Alice";
      foaf:mbox ;
      foaf:homepage http://www.example.com/people/alice>

      Убери, пожалуйста, лишние переводы строк.
        0
        Это автоформатирование хабра
          +1
          поправил
          0
          это мысли в слух, а вывод?
            0
            Вывод? Используйте статус 303 или хэш УРЛ.
            0
            Сказали "а" - говорите "б". Из принципа не пошел в ваш блог, хотя тема мне интересна
              0
              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
                0
                Перефразируя: «Просто всю страницу считать Алисой нельзя, но зато Алисой можно считать 1) часть страницы, начинающуюся с букмарка, и 2) всю страницу, если при специальном запросе с этого же адреса документа в формате rdf будет отдаваться документ в формате rdf»

                В общем, изначальная посылка про «нельзя» («На www.example.com/people/alice нельзя, потому что по правилам <URI-Алисы> a foaf:Person; должно содержать именно ссылку на человека.») — бред.

                А статья — неполный огрызок информации про варианты выдачи rdf-а с веб-сервера, и соответственно, формирования ссылок на них в самом rdf.

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