FOAF

FOAF (Przyjaciel mojego przyjaciela - The Friend of a Friend) to język używany do opisu osób. Jest oparty na języku RDF. Tworząc w 2000 r. standard Dan Brickley i Libby Miller przyjęli założenie, że każdego użytkownika w sieci można jednoznacznie zidentyfikować za pomocą adresu e-mail. FOAF został opracowany, by utworzyć sieć stron opisujących ludzi oraz powiązania między nimi, które można odczytać maszynowo. Jest otwartą inicjatywą.

Słownictwo języka FOAF podzielono na trzy warstwy:

  • Core,
  • Social Web,
  • Linked Data utilities.

Pierwsza z nich zwiera podstawowe klasy i właściwości. Social Web rozbudowuje klasy o dodatkowe właściwości, a Linked Data utilities zawiera narzędzia wspierające rozwój projektu.

Dwoma podstawowymi klasami w języku FOAF są: klasa foaf:Agent i foaf:Person. Pierwsza z nich jest nadklasą dla drugiej i umożliwia stworzenie profilu nie tylko dla osób, ale również dla usług i agentów. Natomiast za pomocą klasy foaf:Person można zdefiniować użytkownika sieci. W tabeli 1 przedstawiono wybrane klasy i właściwości należące do standardu FOAF.

Tabela 1

Wybrane klasy i właściwości należące do języka FOAF

ELEMENT FOAF

ZNACZENIE

foaf:Agent

nadklasa dla foaf:Person, umożliwia stworzenie profilu nie tylko dla osób, ale również dla usług, agentów

foaf:Person

definiuje użytkownika, którego profil społeczny jest opisywany

foaf:name

imie i nazwisko

foaf:title

Tytuł

foaf:img

obraz, który może być użyty

foaf:familyName

Nazwisko

foaf:knows

opisuje relacje pomiędzy obiektami klasy Person (osoba zna osobę)

foaf:based_near

 Lokalizacja

foaf:Project

definiuje różnorakie projekty

foaf:Organization

definiuje agentów takich jak przedsiębiorstwa, stowarzyszenia itp.

foaf:Group

przedstawia zbiór indywidualnych agentów

foaf:firstName

Imie

foaf:nick

Przezwisko

foaf:mbox

adres e-mail

foaf:homepage

strona domowa

foaf:weblog

Blog

foaf:mbox_sha1sum

kodowanie adresu e-mail

foaf:interest

Zainteresowania

foaf:workInfoHomepage

adres strony WWW miejsca pracy

foaf:schoolHomepage

strona szkoły do której osoba uczęszcza/uczęszczała

foaf:publications

link do publikacji danej osoby

foaf:currentProject

obecny projekt nad którym osoba pracuje

foaf:pastProject

projekt w którym osoba pracowała w przeszłości

foaf:member

określa członków grupy

foaf:gender

Płeć

foaf:phone

Telefon

Źródło: opracowanie własne na podstawie http://www.foaf-project.org/   

Przykład:

<foaf:Person rdf:ID="me">

   <foaf:title>Mgr</foaf:title>

   <foaf:name>Jan Kowalski</foaf:name>

   <foaf:givenname>Jan</foaf:givenname>

   <foaf:family_name>Kowalski</foaf:family_name>

   <foaf:nick>kowal</foaf:nick>

   <foaf:mbox>jan.kowalski@kowalski.pl</foaf:mbox>

   <foaf:homepage rdf:resource="http://www.kowalski.pl/" />

   <foaf:knows>

      <foaf:Person>

         <foaf:name>Adam Nowak</foaf:name>

         <foaf:mbox>nowak@nowak.com</foaf:mbox>

      </foaf:Person>

   </foaf:knows>

   <foaf:knows>

      <foaf:Person>

         <foaf:name>Anna Duży</foaf:name>

         <foaf:mbox>a.duzy@duzy.com</foaf:mbox>

      </foaf:Person>

   </foaf:knows>

</foaf:Person>