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. Да ваще капец. ишо жалуется. Балбес. ущи Руский язик.

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

Торговые стратегии на рынке форекс

На рынке Forex существует множество различных стратегий, которые трейдеры могут использовать при создании экспертных советников (экспертов)...