13 августа 2010 г.

FOAF при детальном рассмотрении

FOAF лого

Введение

Ссылки что бы ознакомиться что такое FOAF

1.http://ru.wikipedia.org/wiki/FOAF - в википедии o FOAF
2. The Friend of a Friend (FOAF) project
3. FOAF Vocabulary Specification 0.98
4. FoaF Explorer - демонстрация foaf
5.Origo - social client -лучший на данный момент пример демонстрации foaf

Данному формату основаному на RDF уже порядка 10 лет , последняя спецификация вышла пару дней назад (9 August 2010), предпоследняя была где то в марте.

Пример FOAF файла (foaf.rdf)

<rdf:RDF>
 <foaf:Person>
  <foaf:givenname>Yuriy</foaf:givenname>
  <foaf:mbox_sha1sum>e5dd68cdab48e</foaf:mbox_sha1sum>
  <foaf:interest>
  <rdf:Description rdf:about="http://www.php.net/">
  <dc:title>PHP</dc:title>
  </rdf:Description>
  </foaf:interest>
  <foaf:knows>
  <foaf:Person>
    <foaf:name>Irina</foaf:name>
  </foaf:Person>
  </foaf:knows>
 </foaf:Person>
</rdf:RDF>

Файл имеет "2 уровневую рекурсию" : на первом уровне идет описание меня т.е указание моего имени, фото,моего блога,емаил, и т.д (см спецификацию) а потом на 2 уровне идет описание тех людей, которых я знаю(foaf:knows), в таком же формате, как было на 1 уровне.
Этот файл я сохранил у себя на веб-сервере и подключил его в МЕТА моей домашней страницы:

<link rel="meta" type="application/rdf+xml" title="FOAF" href="foaf.rdf" >

Используя плагин к Mozilla Thunderbird, можно прикреплять FOAF файл в каждое Email-сообщении как vCard.
FOAF в Thunderbird


Формат RDFa (подобие микроформатов) позволяет "вживить" FOAF в текст HTML :

<div class="socialnet" about="#me" typeof="foaf:Person">
<p property="foaf:name">Alice Birpemswick</p>
My buddies:<ul rel="foaf:knows">
<li typeof="foaf:Person">
<a property="foaf:name" rel="foaf:homepage" href="http://example.com/bob">Bob</a></li>
</ul></div>  пример взят отсюда

Смысл всего этого в том, что можно создать распредённую социальную сеть, которая будет распознаваться компьютерами. RDF это машиночитабельный и машинами-понимаемый формат.

Как можно получить FOAF файл ?
Есть небольшие программки (в том числе и online), которые позволяют создать foaf.rdf файлы. Зарегистрировшись, например на yandex.ru или в ЖЖ, можно также получить "автоматом" такой файл. Yandex сделал также своё расширение для foaf,
наверное не знав о SIOC.

Не совсем удобно, к примеру изменять свою домашнюю страницу  и для людей (html) и для машин или агентов ( rdf ), а также вручную, как то конролировать список своих контактов в фоаф файле. Конечно этот процесс можно было бы как то автоматизировать, и создать специальный софт, если бы FOAF получил более широкое распространение.
Известная Opensource CMS Drupal иммет большое количесво RDF модулей (в том числе  FOAF).

Как можно использовать FOAF и какое распространение это получило ?

1.Самый простой пример использования FOAF - он даже не из семантик веба - это использовать данный файл для быстрой регистрации на сайтах - указал URL FOAF файла и все данные -
как то имя, интересы, фото и т.д. заполнять не надо. Если регистрация будет в социальной сети, то сразу же можно найти и друзей не давая "потрошить" свой емаил ящик. Что бы это всё сделать безопастно и надёжно есть даже разработки в области FOAF+SSL.Для PHP есть библиотека  ARC, с помощью которой легко обрабатывать RDF(faof.rdf) файлы , которые имеют XML-синтаксис.Но я как то не встречал сайтов, которые поддерживают упрощённую регистрацию, указанием FOAF файла.
Здесь есть конкуренция со стороны OpenID +OpenID Simple Registration и OpenID Attribute Exchange или oAuth. Эти форматы и протоколы уже поддерживают громадное число сайтов.

2.Для семантического веба RDF хорош тем что можно выполнять  специальные SPARQL запросы, хотя если RDF файлы  будут "разбросаны" по всему интернет - то не понятно как это использовать. Чтобы это использовать надо будет собирать эти файлы в единое RDF хранилише (RDF story) и тогда там уже можно будет использовать всю мощь SPARQL запросов -то есть тогда получилась бы семантическая поисковая машина для поиска людей что то типа FOAF search engine - хотя такие проекты, на сколько мне известно, так и не получили большого развития.

3.Есть еще концепция Linked Data - идея соединить все RDF данные. На фото развития, который есть на главной странице сайта,
FAOF и DBpedia кружочки занимают одно из центральных положений. Количество FOAF файлов появилось только за счет крупных социальных сетей, которые что бы "отдать дань моде" и как прилепить к себе слово "семантическая", просто сгенерировали для каждого своего пользователя такой файл и "сделались" таким образом Open social networks.

4.Некоторые отнологии например SIOC initiative (Semantically-Interlinked Online Communities) или Online Presence Ontology используют FOAF , но в OpenSocial или в какие то другие social API они также не попали.

Недостатки

1.Описание персоны является немного излишним , так как его можно было бы взять из hCard схемы , а описание связей(контактов) является недостаточным(есть только foaf:knows) и это значительно уступает описанию связей в XFN (или в почти его копии онтологии relationship).Для описания связей существует расширение(FoafExtensions) FOAFRealm Ontology Specification, которое всё же уступает XFN.

2. foaf как следует из название служит для описания людей и связей между ними.Сейчас же там появилось описание и организаций и документов(для этого есть известный Dublin Core) и еще много чего.

3.Нет начальной общей Онтологии "верхнего уровня", дающей описание, например как в веб каталогах, например Общество -> Персоны. Т.е. сначала должна быть онтология "Общество", в которую как часть, уже могла быть включена FOAF.

4.Нет "дальнейшей ветки" Онтологии - т.е. если я указываю мой интерес в FOAF файле (foaf:interest) например PHP , то для машин уже не понятно что такое PHP, т. к. нет онтологии где есть описание PHP и связаной с FOAF.

5. FOAF словарь является как бы островком с слабыми связями с другими rdf словарями-островками. Хотя для FOAF есть онтологии расширяющие FOAF, например GEO,E-foaf:interest,CV,Bio и другие.

6.Описание например IM аккаунтов иммет вид jabberID, msnChatID, skypeID. Было удобнее это делать как в виде foaf:contact и уже потом contact:msnChatID. Кстати уже есть несколько Contact онтологий например NEPOMUK Contact Ontology.


Аналоги и конкуренты

Конкурентами можно таки назвать микрофарматы и vCard. Микроформаты сейчас продвигаются лучше чем RDF(RDFa) у них hCard, XFN, XOXO, hCalendar,hReview и так далее.vCard стандарт RFC 2426 был описан аж в 1998 году, vCard на 2 года "старше" FOAF и vCard получило громандое распространение : все контакты в сотовых телефонах, email программах, IM программах и так далеее.

Есть также RDF версия vCard Representing vCard Objects in RDF, RDF версия XFN
Expressing the XFN microformat in RDF а также аналог XFN RELATIONSHIP.

Сейчас  google "собирает" RDF данные и поддерживает микроформаты.
Open Social не стал поддерживать FAOF формат , что является наверное почти "смертельным" ударом. Open Social взял за основу vCard и XFN, , которые известны уже давно.
Portable Contacts (еще один формат который также служит для описания людей и их друзей или контактов)для совметимости с Open Social также основаны на vCard.
Существует еще один  аналогичный FOAF формат Personal Information Model от Nepomuk, который используется в активно развивающемся проекте Semantic Desktop.


Выводы

Два факта :
1.есть связка RDF vCard + RDF XFN(или RELATIONSHIP)
2.OpenSocial "не поддержал" идею FOAF
делают FOAF практически "лишним" форматом.
Или ?

2 комментария:

  1. Ну ведь реально фиговое оформление

    ОтветитьУдалить
  2. Да ваще капец. ишо жалуется. Балбес. ущи Руский язик.

    ОтветитьУдалить

Разработка PHP и MySQL с использованием Docker

Современные веб-разработчики часто сталкиваются с проблемами настройки окружения для проектов. Docker помогает стандартизировать и ускорить ...