Семантическая паутина — что мы можем делать уже сейчас

    Буквально только что в топе проскочила замечательная статья "Элементы семантической паутины". Начал писать на нее ответ, но он получился слишком большим, поэтому выделяю его в отдельный топик.

    Итак, большинство комментариев делится на две категории: «Да ну, рядовому юзеру семантическая разметка информации непонятна, недоступна, и соответственно, он не будет ей заниматься» и «Да ладно, все будет хорошо, как-нибудь добредем то этого светлого будущего».

    Я считаю, что правы и те, и те, и у нас, у тех, кто считает «семантическую паутину» желанным будущим, есть возможности ускорить его приход.

    Достижение критической массы



    ПМСМ, нельзя ставить целью повсеместный переход на использование семантических технологий одномоментно, или за какое-то короткое время. Но мне кажется, что энтузиастам имеет смысл обратить свое внимание на разработчиков и используемые ими инструменты. Как только возможность (полу-)автоматического добавления семантической разметки к выдаваемой информации станет дешевой (по затратам труда, умственных усилий и времени), очень многие разработчики начнут это делать, даже не ожидая немедленной отдачи. Что, в теории, должно привести к образованию критической массы семантической информации в Сети и породить бум в написании обработчиков такой информации, агентов, и т.п. Посмотрите на мир веб-сервисов. Когда-то Microsoft натужно продвигал свой SOAP, а сейчас с тобой нигде разговаривать не станут, если ты никогда не писал SOAP или REST сервисы. Кстати, тоже попытка упорядочения информации, и не совсем безуспешная.

    Какие такие инструменты?


    Очень многие хабралюди так или иначе причастны к созданию и публикации информации в Сети. Вопрос о том, насколько это уникальная и значимая информация, пока оставляем в стороне. Скажем, к созданию и публикации контента. Вопрос: сколько людей делают это по-старинке, вручную? Т.е. открывают vim, emacs, или, не приведи Боже, notepad.exe и тупо пишут HTML страницы, а потом закачивают их по FTP на сайты? Немного, правда?

    Уже довольно давно подавляющее большинство контента перед публикацией проходит через тот или иной вид CMS — Content Management System. Сюда же относятся движки блогов и прочего. Или же, если мы сами пишем «движки сайтов», то мы сами создаем такие системы.

    CMS


    Большинство популярных CMS — продукты с открытым кодом. В принципе, нет никаких препятствий для написания расширений для них, которые облегчат их пользователям создание семантической разметки для публикуемой информации. Более того, очень многие системы уже так или иначе этим занимаются. Самый примитивный пример — тэг <lj-user> в ЖЖ. Очень многие календарные системы используют микроформат hCalendar (см. статью "Элементы семантической паутины").

    Ради интереса поставьте себе расширение к Огнелису Operator и погуляйте по сети — увидите много интересного.

    А теперь представьте, что в ЖЖ, WordPress, Drupal, и т.д. есть код, который может реагировать на некие спец-тэги (person, event, location), и т.д. Выгоды для пользователей — облегчение форматирования их текстов. Выгоды для семантической связности сети — огромные. Я сейчас набираю этот текст в Хабраредакторе, и для ссылок использую простые тэги <a>. А если бы кнопка "<a>" в Хабраредакторе сразу же вставляла микроформат ссылки (есть специальная онтология на эту тему, забыл, как называется, и лень искать сейчас), то семантический агент, читающий эту страницу, смог бы связать меня, эту статью, статью, на которую я отвечаю, ссылки на литературу, и т.д., тем самым создавая основу для машинного анализа этой информации.

    Для разработчиков


    Тут размахнуться можно еще шире, возможностей очень много. Попробую описать один пример, который я придумал в процессе написания этой статьи.

    Я за свою жизнь написал много веб-приложений на связке технологий Spring MVC (или WebFlow) + Spring Framework + Hibernate + база данных. Достаточно стандартный набор в мире Джавы. Общая идея стандартна — доменные объекты каким-либо образом доставляются до уровня презентации, где и трансформируются в HTML. Придумалась идея семантического расширения для Spring, которая будет состоять из следующих частей:
    1. @Аннотации, позволяющие поставить доменные классы и их поля в соответствие с элементами некой онтологии
    2. Репозитарий используемых онтологий (не совсем уверен пока для чего это нужно, но инстинкт подсказывает, что нужно)
    3. Библиотека JSP-тэгов, которая бы отрисовывала нужные значения в нужном (семантическом) виде
    4. Может, еще какое-то расширение стандартного Spring-овского класса ModelAndView, которое бы автоматически распознавало сущности в модели и что-то семантическое с ними делало


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

    Рядовой Итого, или «а зачем мне это нужно»


    Итак, я предлагаю энтузиастам сосредоточить усилия не на конечных пользователях, а на средствах разработки и публикации. Цель — создание некой критической массы сематической информации в Сети. Выгоды — самые огромные, и совсем не только для монстров типа Гугла. Для нас, разработчиков, это — возможность оказаться в струе новой революции в Сети и все связанные с этим коврижки — самореализация, гарантированные рабочие места, широкое поле для стартапов, и т.д. По-моему, оно того стоит.
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 27
      +3
      Смеяться думаю никто и не будет. Идея — это всегда хорошо. А хорошая идея еще лучше, даже если она сыровата. В данном случае: может выйти действительно много полезного. Так что думайте, буду ждать продолжения ;)
        +2
        Почитав комменты возникли 2 пути развития идеи:
        1.Написание плагинов к популярным CMS
        2.Написание и популяризация агретаторов и парсеров созданных семантических связей.

        Лично я предлагаю обратить все силы именно на второе, потому, что как только мы (да да, обычные разработчики) предоставим современные инструменты анализа и исследования семантических связей, другие разработчики (верстальщики и т.д.) станут внедрять семантику в свои странички. Тут главное сделать инструменты исследования семантических связей простыми (как Wiki).
        Вообще это все напоминает Google и то, как 2 студента начали исследовать поисковые алгоритмы.
        Господа, мы стоим на пороге нового года и нового рывка в эволюции веба. Именно сейчас возможно заставить пользователей и крупные компании всерьез посмотреть на то как мы взаимодействуем с информацией и найти новые подходы к ее обработке.
        /me подумывает о написании нового топика на Хабр.
        0
        По-моему большинство рутины по внедрению микроформатов в типичной CMS, построенной на базе принципов MVC, приходится на разработку шаблонов страниц/блоков/партиалов, то есть по сути на верстальщиков. Внедрение дополнительных тегов для пользовательского ввода (статьи, посты, комменты), который часто осуществлятся в WYSIWYG режиме, имхо, неоправданно. Куда привлекательнее, по-моему, и для пользователей, и для разработчиков внедрение соответствующих кнопок на тулбарах или расширения функциональности существующих. К примеру, чтобы при нажатии кнопки «Ссылка» нужно было указать не только атрибут href и содержимое тега <a>, но и выбрать из списка(ов) атрибуты rel и rev.
          0
          Мне кажется, что этот путь заведет в тупик, хотя и принесет некоторую пользу. Оставаясь в рамках парадигмы* разметки документа, мы заранее ограничим разнообразие семантической информации, которую сможем публиковать.

          Мне кажется более многообещающим вариант, когда пользователь указывает системе (шаблону? движку?), что некий элемент — это сущность определенного класса. И дальше система, а точнее, плагин к системе CMS, который занимается обработкой таких элементов, решает как его отображать. Ибо не микроформатом единым…

          *)Гы, а еще я знаю богатое слово «гомосексуализм»
          +5
          Отличная идея. Я почему-то сразу вспомнил про электронное правительство. Было бы просто невероятно замечательно, если вся структура эл. правительства основывалась на элементах семантической сети. Это же насколько станет легче взаимодействовать с государством! Только представьте, каждый закон и пункт закона имеет свой URI, и все пункты в электронных договорах, новостях, будут связаны с соответствующими метаданными. Деятельность каждого чиновника может быть легко проконтролирована общественностью. Снизятся бюрократические и административные барьеры, госслужбы смогут очень эффективно взаимодействовать между собой. Вариантов можно придумать море!
          Но это, конечно, огромный труд, нужны талантливые, компетентные работники в самых различных сферах. Эти люди у нас есть, будущее за ними.
            +3
            Не дадут… Даже не по тому что понимают чем грозит, а потому что не понимают и не поймут…
            +2
            Проблема ведь не в технологиях. Можно как угодно тщательно структурировать и размечать мусор, но в результате получится всего лишь структурированный мусор.
              +1
              «Когда б вы знали, из какого сора // растут стихи, не ведая стыда...»

              Мусор, не мусор, а контент. И его надо структурировать и машинно обрабатывать. Иначе как тогда Скайнет оживет? ;)
              0
              Пришла в голову интересная мысль.

              А что, если для семантической разметки использовать html комментарии? Во-первых это никак не нарушит валидности страницы, а во-вторых позволит использовать свой синтаксис.
                +1
                А зачем? Есть куча групп по выработкам соответствующих стандартов, пусть у них головы болят.

                Кстати, вопрос: мсье явщик? Идея на JavaDoc похожа :)
                  +2
                  RDFa? (http://www.w3.org/TR/xhtml-rdfa-primer/)
                    0
                    Предлагаете изобрести SGML?
                    0
                    Семантика начнет внедряться повсеместно когда от это внедрения будет ощутимая польза. Или вред от ее отсутсвтия.

                    Например если ваш сайт семантический его проще найти через поиск, а если семантику не использует, то потсковики задвигают его подальше.

                    Пока ввод семантики не будет приносить прямого увеличения посетителей — она будет оставаться уделом пусть и растущей, но незначительной группы граматеев- интузиастов.

                    А инструменты и методы внедрения это уже как говорится дело техники.
                      0
                      Несогласен, уже сейчас, насколько мне известно, Google и Yahoo используют семантику при отображении результатов. Введите название какой-нить популярной программы (скажем Notepad++) и обратите внимание на результаты выдачи с C-Net
                      Как вы видите, в органике видны звездочки оценки программы. Это конечно не прямой траффик на ваш сайт, но все же.
                      +3
                      Истинный всплеск интереса к семантической сети возникнет только после появления нормальных оптимизированных движков для логического вывода с внятным API для основных программных платформ. Потому что суть SW/RDF/N3 — в возможности внешней аннотации произвольных URI, а что там по ним будет находиться: файл-картинка, веб-страничка или абстракция, на которую ссылаются другие — второй вопрос.

                      А микроформаты — чисто теоретический интерес. Те, кто хочет организовать доступ к своим данным, лучше сделает отдельный ресурс с XML или даже CSV и залинкует его каким-то образом.

                      Т.е. я к тому, что да, наиболее логично использовать SW на серверной стороне, но не только в узком смысле генерации микроформатов в презентации, а используя семантический движок в виде универсального make.
                        0
                        А что вы имеете в виду под «семантический движок в виде универсального make»?
                          0
                          То, что вы описали в разделе «Для разработчиков», если я вас правильно понял.

                          Это нужно, например, для того, что бы разные связанные отношения описывать только одним утверждением, экономя время и нормализуя исходник. Но пока нормальных семантических движков я не встречал, соответсвенно, в разработческие инструменты они не интегрируются. :(
                        –2
                        1). Сделать очередную CMS
                        2). ???
                        3). PROFIT!
                          +1
                          Насколько я помню, google пообещал, что сайты, на которых помещено больше семантической информации будут скоро выше отображаться в поиске :)

                          Именно это сильно продвинет эту область, а не ваша критическая область ;)
                            0
                            извините, «критическая масса» )
                              +2
                              угу, и тут как раз особо остро встанет проблема спама и верхней части пирамидки семантик веб — та которая про proof and trust
                              0
                              Хорошая статья. У меня аж энтузиазм восплылал, честное слово!
                              И идея мне нравится. Я хоть на Джаве и не писáл, но суть не в ней ведь. Насколько я понял, для начала нужно просто добавить в наиболее распространённые CMS, плагины, позволяющие некие определённые типы информации, на основе репозитария онтологий (кстати, его-бы сделать глобальным для всей сети, Уммммм), оборачивать семантической информацией
                                0
                                Для начала можно собрать в одном месте информацию об уже существующих плагинах к популярным CMS, а так же других методах создания «правильного» семантического контента )
                                  +1
                                  Вот! Да. Ближе к делу :)
                                  Кстати, недавно был топик о сайте semanticfuture.net сейчас посмотрю, что там и как
                                    0
                                    Я к ним не имею отношения, просто вот так на вскидку вспомнилось
                                      +1
                                      Как самый простой вариант — можно или wiki завести для этой темы, либо google app… )
                                      Лично мне данные технологии нужны для работы, и я могу посодействовать.
                                        0
                                        Согласен, первый шаг, всё чётко структурировать. Подготовить информационную базу.
                                        Сразу возникает мысль, что данная вики должна быть и сама построена с использовании инструментов Semantic Wiki. Конечно внедрение ещё и этих аддонов замедлит создание ресурса, но в итоге будет хороший пример, конечно в случае успешной реализации.

                                        Вообще, честно говоря, я с созданием и редактированием Вики никогда не сталкивался, Но, уверен, это не проблема. Чувствую, потребность в таком ресурсе назрела не только у нас

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

                                Самое читаемое