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:
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>