UNIVERZA V MARIBORU FAKULTETA ZA ORGANIZACIJSKE VEDE SEMINARSKA NALOGA PRI PREDMETU: PROJEKT IZGRADNJE INFORMACIJSKEGA SISTEMA IZMENJAVA PODATKOV MED SOCIALNIMI OMREŽJI Mentor: Dr. Vladislav Rajkovič Asistent: Mag. Uroš Rajkovič Avtorji: Petra Movh (41052158) Boštjan Lukša (41052107) Grega Lebar (41052089) Kraj in datum: Kranj, 21.4.2008
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
2.1. RDF – Resource Description Framework / Okvir za opis virov ...........................................6 2.1.1. Primer RDF zapisa v N3............................................................................................................... 6 2.1.2. Primer RDF zapisa v RDF/XML: ................................................................................................... 7
2.2. RSS.....................................................................................................................................7 2.2.1. Struktura RSS ............................................................................................................................. 7 2.2.2. Primer strukture RSS 2.0 dokumenta .......................................................................................... 9
2.3. ATOM .............................................................................................................................. 10 2.3.1. Glavne razlike med RSS ter ATOM ............................................................................................ 10 2.3.2. Primer Atom strukture ............................................................................................................. 12
2.4. FOAF / Friend of a Friend ................................................................................................. 12 2.4.1. Primer FOAF sintakse ............................................................................................................... 12 2.4.2. FOAF termini, združeni v široke kategorije ................................................................................ 13
5. Viri ................................................................................................................................26
Izmenjava podatkov med socialnimi omrežji
2
Povzetek S hitrim razvojem interneta, ki ga v zadnjih letih imenujemo tudi Web 2.0, se je spremenil naš način komuniciranja. Uporabo elektronske pošte in ostalih medijev sporočanja nadomeščajo socialna omrežja, preko katerih vzdržujemo kontakte in delimo naše zasebno življenje z družino, prijatelji, sošolci in ostalimi interesnimi skupinami. Hkrati s socialnimi omrežji je na spletu vedno več spletnih strani z uporabniško generiranimi vsebinami, kot so fotografije, videi, blogi in podobno. Sinonim za to so popularne spletne strani, kot npr. YouTube, Flickr, Blogger in podobne. Socialna omrežja tako postajajo glavne destinacije uporabnikov spleta, kjer lahko najdemo veliko število podatkov, od povsem javnih do zasebnih. Veliko število socialnih omrežij, ki med seboj večinoma niso povezana, vzrokuje veliki razdrobljenosti teh podatkov, predvsem pa le-ti niso prenosljivi. Zastavlja se vprašanje, kdo je v resnici lastnik posameznikov osebnih podatkov, kdo ima pravico z njimi upravljati, odločati o njihovi zasebnosti in jih prenašati. Tovrstnim potrebam po prenosljivosti podatkov sledijo različne neodvisne organizacije, ki definirajo nove standarde. S tem omogočajo ustvarjanje socialnega grafa, ki ni več omejen le na eno socialno omrežje, ampak skupaj z ostalimi tvori celoto posameznikove identitete. Ključne besede: socialna omrežja, prenosljivost podatkov, zasebnost, socialni graf, Web 2.0
Summary Fast evolution of the Internet, lately called Web 2.0, is changing the way we communicate. Email and other communication media are being replaced by social networks, which allow us to keep in touch and share our life with family, friends, colleagues and interest groups. At the same time, web is increasingly being used for publishing user generated content like photos, video, blogs etc. YouTube, Flickr, Blogger and others are synonyms for this development. Social networks are becoming the main destination, where users can find a lot of public and private information. Growing number of social networks, which are mostly not connected with each other, are causing our data to be fragmented and non-portable. The raising question is who owns our data, who has the right to manage it, decide about the privacy and portability. These needs are being addressed by independent organizations, which define new and open standards. This standards are the basics for creating the social graph, which isn't limited only to one social network anymore, but connects with others and merges all the users web profiles into one whole identity. Keywords: social networks, data portability, privacy, social graph, Web 2.0
Izmenjava podatkov med socialnimi omrežji
3
1. Uvod V zadnjih letih smo priča izjemno hitremu razvoju spleta, ki mu radi dajemo oznako “Web 2.0”. Sinonim za Web 2.0 so socialna omrežja kot npr. MySpace in Facebook ter portali z uporabniško generiranimi vsebinami kot npr. YouTube. Socialna omrežja so postala nov kanal komunikacije, ki ni več enosmerna, tako kot v preteklosti, ampak ustvarja in širi dialoge. Preko socialnih omrežij ohranjamo stike z znanci in prijatelji, spoznavamo nove ljudi, se vključujemo v skupine s podobnimi interesi in gradimo svojo spletno prisotnost. Povsem običajno je, da imajo aktivni uporabniki spleta več spletnih profilov, ki so namenjeni pisanju spletnih dnevnikov (blogov), objavljanju fotografij, glasbe, videa, komuniciranju s sodelavci, prijatelji, družino... Z našo dejavnostjo na spletu nevede ustvarjamo t. i. socialni graf, ki povezuje vse naše spletne profile in ustvarja celoto ter nas na ta način povezuje z ostalimi. Pomen socialnega omrežja in socialnega grafa se večkrat zamenjuje, zato velja omeniti, da socialno omrežje posameznika predstavljajo ljudje, ki jih le-ta pozna, socialni graf pa širše predstavlja vse ljudi, s katerimi je posameznik povezan glede na svoje interese, lokacijo, delo ... Razvoj socialnih omrežij je v zadnjem letu prešel iz zgodnje v zrelejšo fazo, kar kaže predvsem pojav ožje usmerjenih socialnih omrežij, ki pokrivajo le eno nišo. Na področju glasbe je med najbolj poznanimi Last.fm, na področju poslovne komunikacije LinekdIn itd.
1.1. Obstoječe strani Dnevno nastane več kot 1000 novih socialnih omrežij, zato je nemogoče natančneje določiti njihovo število. Razvoj novih tehnologij in spletnih orodij sedaj posameznikom omogoča kreiranje lastnih socialnih omrežij, za kar ne potrebujejo skoraj nobene tehnične podlage. Primer takega spletnega orodja je Ning (www.ning.com). Priljubljenost socialnih omrežij je močno povezana z demografijo. Tako je moč opaziti, da v Severni Ameriki dominirata MySpace in Facebook, v Južni Ameriki Orkut, zahodna Evropa precej uporablja Bebo in Hi5 ... Spodnji sliki prikazujeta rast obiskanosti največjih socialnih omrežij in delež obiskovalcev v različnih delih sveta:
Slika: Rast obiskanosti socialnih omrežij, primerjava junij 2006 in 2007; vir comScore
Izmenjava podatkov med socialnimi omrežji
4
Slika: Demografija obiskovalcev največjih socialnih omrežij
Raziskava Uporaba spletnih socialnih omrežij v Sloveniji, ki sta jo v februarju in marcu 2008 izvedli podjetji Httpool in Valicon, je pokazala, da je 26 % slovenskih uporabnikov interneta vključenih v vsaj eno socialno omrežje. Med socialnimi omrežji je najbolj poznan MySpace (60 %), sledita Facebook (37 %) in Hi5 (27 %). Uporabniki v okviru spletnih omrežij najpogosteje pošiljajo sporočila in si dopisujejo, ohranjajo prijateljstva ter si urejajo svoj osebni profil.
1.2. Povezave med uporabniki socialnih omrežij Hiter razvoj socialnih omrežij je povzročil potrebo po standardih, s katerimi bi lahko definirali relacije med ljudmi. Žal ti standardi niso bili dovolj hitro definirani, zato je vsako socialno omrežje uporabilo svoj način, s katerim so reševali te probleme. Pomanjkanje standardov in njihove uporabe pa ni edini razlog za množico podatkov, do katerih je težko dostopati in jih izmenjevati med seboj. Socialnim omrežjem namreč relacije njihovih uporabnikov predstavljajo največjo vrednost, saj na njihovi podlagi prikazujejo ciljano vsebino in oglase, ki so zaenkrat edini enostaven način monetizacije. Na začetku je večina socialnih omrežij poznala le eno osnovno relacijo in sicer “je prijatelj”. Sčasoma se je izkazalo, da je ta oznaka preveč splošna, saj ne definira točne relacije preko katere bi lahko vedeli ali se dve osebi poznata v živo, preko spleta, sta sošolca, prijatelja, sorodnika, poslovna partnerja ... Te relacije vzporedno vplivajo tudi na osebne podatke, do katerih lahko dostopajo ostali uporabniki, kar avtomatsko ustvarja več nivojev zasebnosti. Logično je, da sorodnikom in prijateljem lažje zaupamo osebne podatke, kot pa naključnim posameznikom. Praksa socialnih omrežij je, da ljudem, ki jih dodamo med svoje prijatelje, omogočimo vpogled tako do naših podatkov, kot tudi do naše socialne mreže, torej ljudi, ki jih poznamo. Na ta način prihaja do stalnih dilem, kako ohraniti zasebnost svojih podatkov ali svoje socialne mreže, če isto omrežje uporabljajo tako sorodniki, prijatelji, kot tudi poslovni partnerji, s katerimi bi želeli deliti le del naše zasebnosti. Socialna omrežja zaenkrat še niso poenotila označevanja relacij vendar je opaziti trend povečane uporabe standardov XFN in FOAF, ki se najhitreje širijo v odprtokodnih rešitvah.
Izmenjava podatkov med socialnimi omrežji
5
1.3. Končni problem V času, ko je vedno več storitev mogoče opraviti preko spleta, je zasebnost postala bistven del človekove prisotnosti na spletu, saj ima zloraba le-te lahko hude posledice. Vedno več je primerov kraje identitete, predvsem v Ameriki, počasi pa se tovrstni primeri širijo tudi v Evropo. Jasno je, da potrebujemo nove rešitve, ki bodo sledile razvoju spleta in odgovorile zahtevam uporabnikov. Razvoj socialnih omrežij je pripeljal do vedno glasnejših zahtev po standardizaciji izmenjave podatkov med omrežji. Problem je predvsem praktične narave, saj moramo za vstop v socialno omrežje vsakič izvesti podobno zaporedje aktivnosti, kot je npr. registracija, izpolnjevanje profila, iskanje prijateljev in dodajanje le-teh. Brez izmenjave podatkov je vsako socialno omrežje samostojna celota, ki si lasti našo socialno mrežo in podatke. Po našem mnenju je to nesprejemljivo, saj so naši podatki, relacije, socialna mreža in graf naša last, torej bi nam moralo biti omogočeno z njo narediti karkoli, torej tudi prenašati, dopolnjevati in na splošno upravljati.
1.4. Namen in cilj Cilje bi lahko razdelili na splošne, tiste, ki so naravnani na razvijalce in tiste, ki so naravnani na končne uporabnike. V naši projektni nalogi se bomo usmerili predvsem na cilje, ki se dotikajo končnih uporabnikov, ostale pa bomo zanemarili. Ti cilji so:
1. Uporabnik bi moral imeti možnost prve prijave v socialno omrežje (npr. Facebook.com), z uporabo OpenID računa ali sorodne Single Sign-On rešitve, ter dobiti sporočilo podobno naslednjemu:
“Pozdravljeni, iz javno dostopnih podatkov na spletu smo ugotovili, da je v omrežju Facebook.com že 24 vaših prijateljev. Oglejte si jih v spodnjem seznamu, skupaj z razlago logike po kateri smo jih našli in vam jih predlagamo. Za dodajanje med prijatelje jih označite ali enostavno izberite dodajanje vseh.”
Smiselno nadaljevanje bi bilo, da sistem opozori uporabnika, ko se omrežju pridruži prijatelj, s katerim sta povezana že na kakem drugem omrežju in mu na enostaven način omogoči dodajanje ter sinhronizacijo njunih podatkov.
2. Uporabniška orodja (na primer dodatek za brskalnik), ki bi uporabnikom
omogočala upravljanje njihove socialne mreže (s pomočjo APIjev ali sorodnih rešitev), tako da bi socialna omrežja med seboj sinhronizirala nove ali spremenjene podatke in omogočala kakršnokoli drugo aktivnost, ki jo uporabnik želi izvesti. Pomemben dejavnik je seveda način, kako se to zgodi, kakšni so varnostni mehanizmi ipd.
3. Omogočiti prenosljivost socialnega grafa na enak način, kot je to mogoče početi z
dokumenti na osebnem računalniku.
Izmenjava podatkov med socialnimi omrežji
6
V okviru naše projektne naloge bi radi pokazali primer uporabe že obstoječih standardov skupaj z nastajajočimi ter pokazali del možne rešitve, ki bi pripomogla k bolj enostavni izmenjavi podatkov med socialnimi omrežji.
2. Standardi To poglavje je namenjeno pregledu obstoječih standardov, ter standardov v uvajanju, ki pa so prav tako (oz. še najbolj) relevantni za rešitev našega problema.
2.1. RDF – Resource Description Framework / Okvir za opis virov RDF je infrastruktura (družina specifikacij W3C), ki omogoča zapisovanje, izmenjavo in uporabo strukturiranih metapodatkov v omrežnem okolju e-virov s pomočjo več sintaktičnih formatov. RDF metapodatkovni model temelji na ideji opisa spletnih virov v obliki t.i. trojčkov – predmet-predikat-objekt – je metoda dekompozicije znanja v majhne kose z nekaj semantičnimi pravili oz. pomenom teh kosov. Besedo „metoda“ uporabljamo namesto „format“ namenoma, ker samo formatiranje zapisa ob upoštevanju pravil še vedno ohrani svojo smiselno obliko oz. Sporočilo. V nekaj pogledih lahko RDF primerjamo z XML. XML je načrtovan tako, da je preprost ter uporaben za kateri koli tip podatkov. Tudi XML je več kot le podatkovni format, je osnova za delo s hierarhičnimi, neodvisnimi dokumenti. Kar loči RDF od XML je, da je RDF zasnovan, da predstavlja informacije v distribuiranem svetu. To pomeni, da se predvsem ukvarja s pomenom podatkov in ne le s podatki samimi. Vse, kar je v RDF kjerkoli omenjeno, ima nek pomen, naj bo to abstraktni pojem ali dejstvo. Standardi, zgrajeni na RDF opisujejo logične sklepe med dejstvi in tem kako iskati za dejstvi v veliki bazi podatkov RDF znanja. V uporabi sta dva glavna načina oz. formata zapisa podatkov v RDF – s pomočjo XML (Extensive Markup Language) formata ter Notation 3 (oz. N3). Formata delujeta po enakem abstrakcijskem modelu, razlikujeta se le v eni stvari – berljivosti.
2.1.1. Primer RDF zapisa v N3 @prefix : <http://www.example.org/> .
:john a :Person .
:john :hasMother :susan .
:john :hasFather :richard .
:richard :hasBrother :luke .
Izmenjava podatkov med socialnimi omrežji
7
2.1.2. Primer RDF zapisa v RDF/XML: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
2.2. RSS RSS je družina XML datotečnih oblik za spletno zlaganje (angl. web syndication) oz. objavljanje pogosto spreminjajoče se vsebine (vsebina blogov, novic, podcastov...) RSS dokument se podaja v obliki XML kot datoteka, ki jo imenujemo RSS-vir (angl. RSS feed), RSS-tok (angl. RSS stream), oziroma RSS-kanal (angl. RSS channel). Vsebino je možno brati z RSS-bralniki (RSS-reader, feed-reader) oz. agregatorji. Okrajšava RSS se uporablja za sledeče standarde:
4. Rich Site Summary (RSS 0.91; slo: Zgoščeni povzetek strani) 5. RDF Site Summary (RSS 0.90 in 1.0; slo: Povzetek strani po standardem okviru za
opis virov) 6. Really Simple Syndication (RSS 2.x; slo: Zares preprosto zlaganje)
RSS je dialekt XML-ja in kot tak se mora skladati z XML 1.0 specifikacijami
2.2.1. Struktura RSS Vsak RSS dokument mora vsebovati sledeče elemente:
title – Ime RSS-vira link – URL do HTML strani dotičnega vira description – Fraza ali stavek, ki opisuje vir.
Poleg zahtevanih elementov RSS viri lahko neobvezno vključujejo še sledeče elemente:
language – jezik vira (npr. en-us, si-sl). S tem lahko agregatorji združujejo vire po jezikovnih različicah.
copyright – obvestila o avtorskih pravicah vira. managingEditor – e-poštni naslov osebe, odgovorne za urejanje vira webMaster – e-poštni naslov osebe, odgovorne za tehnična vprašanja v zvezi z
virom pubDate – Datum objave vsebine posameznega vira (RFC 822). lastBuildDate – datum zadnje spremembe vsebine vira category – specificiranje ene ali več kategorij, katerim vir pripada
Izmenjava podatkov med socialnimi omrežji
8
generator – indikacija programske opreme za ustvarjanje vira docs – URL ki kaže na dokumentacijo formata, uporabljenega za generacijo
RSS datoteke. ttl – time-to-live oz. čas (v minutah), ki je dovoljen za caching podatkov vira. image – specificira sliko gif, jpeg ali png formata, ki je prikazana z virom rating – PICS ocenitev vira textInput – določa vnosno polje ki je lahko prikazano v viru skipDays – navodilo agregatorjem, katere dni naj preskočijo branje vira
(dovoljene vrednosti so Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)
skipHours – navodilo agregatorjem, katere ure naj preskočijo branje vira (v formatu 0 – 23, GMT)
Element <item> določa posamezne spreminjajoče se alineje posameznega vira. Vključuje naslednje elemente:
title – naslov posameznega elementa link – URL posameznega elementa description – povzetek vsebine elementa author – e-poštni naslov avtorja elementa category – vključuje spisek ene ali več kategorij elementa comments – URL do strani s komentarji elementa enclosure – opisuje elementu pripeto datoteko guid – unikaten opis elementa pubDate – (datetime) označuje čas ter datum objave elementa (RFC 822) source – RSS kanal iz katerega izvira element
Izmenjava podatkov med socialnimi omrežji
9
2.2.2. Primer strukture RSS 2.0 dokumenta <?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Lift Off News</title>
<link>http://liftoff.msfc.nasa.gov/</link>
<description>Liftoff to Space Exploration.</description>
<language>en-us</language>
<pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
2.3. ATOM ATOM format je bil razvit kot alternativa RSS-u, torej je kot RSS - datotečna oblika za spletno zlaganje (syndication). Glavni razlog za razvoj Atom-a je bilo nezadovoljstvo nad RSS, npr. za RSS obstaja več med seboj nekompatibilnih, vendar široko uporabljanih verzij. Namen Atom-a je poenostaviti razvoj aplikacij za spletno zlaganje.
2.3.1. Glavne razlike med RSS ter ATOM Zahtevana vsebina: RSS 2.0 zahteva naslov vira, povezavo ter opis, ne zahteva pa nobenih polj posameznega elementa. Atom 1.0 zahteva tako za vir (feed) kot za posamezne elemente, da vključujejo polje naslova (ki pa je lahko prazno), unikatni identifikator ter čas zadnje posodobitve (last-updated timestamp). Payload / tovor: RSS 2.0 lahko vključuje tako golo besedilo (plain text) kot izognjen (escaped) HTML, brez možnosti indikacije, za katerega točno gre. Izognjen HTML vedno povzroča težave implementatorjem agregatorjev. Za polje <title> model vsebine sploh ni določen; naslovi, ki vključujejo špičaste oklepaje ali znake & so velikokrat napačno interpretirani. RSS 2.0 podatkovni model ne dopušča prave pravilno formirane XML označitve, kar omejuje ponovno uporabljivost vsebine. Atom 1.0 zahteva specificiranje oz. označevanje vsebine z eno izmed naslednjih možnosti:
golo besedilo brez označitev (privzeto) izognjen HTML (pogosto v uporabi v RSS 2.0) pravilno formiran XHTML opis drug XML besednjak base64 kodirana binarna vsebina kazalec spletne vsebine, ki ni vključena v viru
Celotna ali delna vsebina: RSS 2.0 nima elementa za označevanje popolne ali delne vsebine, vsebuje le element <description>, ki lahko vsebuje polno informacijo določenega vira, ali pa tudi ne, medtem ko Atom za podajanje vsebinske informacije vsebuje dva elementa: <summary> ter <content>, s čemer je podan obseg informacije. Avtorstvo: RSS 2.0 omogoča navedbo e-poštnega naslova za <managingEditor> in <webMaster>, ter <author> za posamezno enoto vira. Atom 1.0 podpira elementa <author> ter <contributor> za posamezno enoto vira ter za vir sam, z možnostjo uporabe pod-elementov za e-pošto ter URI Samoprepoznava: RSS nima uradno registriranega oz. standardiziranega MIME tipa (application/rss+xml), kar velikokrat pomeni težave za uporabnike, medtem ko je MIME tip za Atom 1.0 standardiziran (application/atom+xml) Označevanje jezika: Za identifikacijo jezikovnih različic uporablja RSS element <language>, Atom pa vgrajen atribut XML-ja – xml:lang
Izmenjava podatkov med socialnimi omrežji
11
Kategorizacija: RSS kategorije sestojijo iz dveh delov: oznaka in domena. Atom 1.0 kategorije imajo tri – dodan je še neobvezen človeško-berljiv naslov Primerjava RSS ter Atom elementov: RSS 2.0 Atom 1.0 Komentar channel feed title title link link Atom definira zajetno družino
»rel« vrednosti description subtitle Language - Atom uporablja standarden
xml:lang atribut copyright rights webMaster - managingEditor author ali contributor pubDate published (za posamezno
enoto vira) Atom nima te vrednosti na nivoju vira
lastBuildDate (za vir) Updated RSS nima ekvivalenta na nivoju posamezne enote vira
2.4. FOAF / Friend of a Friend FOAF je računalniško berljiva ontologija, ki opisuje osebe, njihove aktivnosti in relacije z drugimi osebami in objekti. Kdorkoli lahko uporabi FOAF za opis samega sebe. Omogoča skupinam ljudi, da opišejo socialne mreže brez potrebe centralizirane podatkovne baze. FOAF je razširitev RDF-a in je definiran s pomočjo OWL (Web Ontology Language).
FOAF osnovni: o Agent o Person o name o nick o title o homepage o mbox o mbox_sha1sum o img o depiction (depicts) o surname o family_name o givenname o firstName
Osebne informacije o weblog o knows o interest o currentProject o pastProject o plan o based_near o workplaceHomepage o workInfoHomepage o schoolHomepage o topic_interest o publications o geekcode o myersBriggs o dnaChecksum
Spletni računi / IM o OnlineAccount o OnlineChatAccount o OnlineEcommerceAccount o OnlineGamingAccount o holdsAccount o accountServiceHomepage o accountName o icqChatID o msnChatID o aimChatID o jabberID o yahooChatID
Projekti in skupine o Project o Organization
Izmenjava podatkov med socialnimi omrežji
14
o Group o member o membershipClass o fundedBy o theme
Dokumenti in slike o Document o Image o PersonalProfileDocument o topic (page) o primaryTopic o tipjar o sha1 o made (maker) o thumbnail o logo
Izmenjava podatkov med socialnimi omrežji
15
2.5. Mikroformati Mikroformati so način dodajanja preprostih označitev k človeško-berljivim enotam podatkov, kot so dogodki, kontaktne podrobnosti in lokacije, na spletne strani, tako da se te informacije lahko izvlečejo s programsko opremo ter indeksirajo, da se po njih lahko išče, navzkrižno povezuje itd. So enote semantične označitve, ki uporabljajo le standardne XHTML in HTML označitve (POSH), nabor razrednih imen, ter »rel« povezave. Čeprav je vsebino spletnih strani tehnično mogoče avtomatsko procesirati že od samega začetka svetovnega spleta, pa tu obstajajo določene omejitve. Tradicionalne označitve, ki so v uporabi za prikaz vsebine na spletu ne opisujejo pomena informacije, ki jo vsebujejo. Mikroformati so namenjeni premostitvi te pomanjkljivosti z dodajanjem semantike in tako zaobidejo druge, bolj kompleksne metode avtomatskega procesiranja vsebine, kot npr. procesiranje naravnega jezika (natural language processing) ali procesiranje zaslonske slike (screen scraping). Trenutni mikroformati dovoljujejo kodiranje in izločanje dogodkov, kontaktnih informacij, socialnih razmerij in relacij itd. Podpora za mikroformate bo implementirana v brskalnikih naslednje generacije (Firefox 3, Internet Explorer 8…)
2.5.1. XFN – Xhtml Friends Network XFN »format« spada v družino mikroformatov. Je enostaven način za predstavitev medosebnih povezav ljudi s pomočjo spletnih povezav (hyperlinks). Izraža relacije med posamezniki s tem da definira skupek vrednosti, ki opisujejo medsebojna razmerja. V HTML in XHTML dokumentih so te vrednosti podane kot »rel« atribut pri povezavi (hyperlink). XFN omogoča avtorju, da pokaže, kateri izmed blogov, ki jih bere, pripadajo njegovim prijateljem, koga so spoznali v živo in druge medsebojne povezave. Z XFN vrednostmi, ki so lahko navedene v kakršnem koli vrstnem redu, lahko ljudje počlovečijo (humanizirajo) svoje blogrole in strani s povezavami, ki so postale stalnica blogov ter drugih osebnih spletnih strani. S podporo XFN mikroformata v prihodnjih brskalnikih, bo možno npr. tudi določiti različne CSS (oblikovne) stile za različne rel parametre.
2.5.1.1. Primer uporabe Boštjan je na svojem blogu objavil povezave do drugih blogov, ki jih prebira in določil relacije: <a href="http://sara-blog.example.org/" rel="sweetheart date met">Sara</a>
Povezava do spletne strani fakultete, katero obiskuje Boštjan nima rel vrednosti, ker ne predstavlja osebe. Ostale rel vrednosti v seznamu povezav so ločene s presledkom (white-space), če jih za opis relacije potrebujemo več. Torej, ker Boštjan hodi s punco Saro (katero je, verjetno niti ne presenetljivo, srečal tudi v realnem življenju), je relacijo označil kot sweetheart date met. Če Sara Boštjanu ne bi pomenila toliko in bi se v resnici dobival tudi z drugimi, bi v povezavi verjetno izpustil relacijo sweetheart.
2.5.1.2. Možni XFN parametri
Kategorije razmerij XFN vrednosti rijateljstvo (največ en) friend acquaintance contact
fizično met
profesionalno co-worker colleague
geografsko (največ en) co-resident neighbor
družina (največ en) child parent sibling spouse kin
romantično muse crush date sweetheart
identiteta me
2.5.2. hCalendar hCalendar je preprost, odprt, distribuiran format za koledar in dogodke, osnovan na iCalendar standardu (RFC2445), primeren za vstavljanje v HTML ali XHTML, Atom, RS ali poljuben XML.
2.5.2.1. Spisek vrednosti hCalendar Vrhnji razred hCalendar-ja je poimenovan »vcalendar«. Vrhnji razred posameznega dogodka je poimenovan »vevent«. Zahtevani parametri:
<abbr class="dtend" title="2007-10-20">19</abbr>, at the <span
class="location">Argent Hotel, San Francisco, CA</span>
</div>
2.5.3. hCard hCard je preprost, odprt, distribuiran format za predstavitev oseb, podjetij, organizacij in krajev. Temelji na vrednostih standarda vCard (RFC2426) in vrednostih v semantičnem HTML/XHTML.
2.5.3.1. Spisek vrednosti hCard Vrhnji razred hCard-a poimenujemo »vcard«. Zahtevani parametri:
fn n (family-name, given-name, additional-name, honorific-prefix, honorific-suffix)
2.6. SyncML / Synchronization Markup Language SyncML (oz. Open Mobile Alliance Data Synchronization and Device Management) je ime za platformsko neodvisen standard za sinhronizacijo informacij. Ostale (obstoječe) rešitve so v veliki meri zavisele od ponudnika/proizvajalca, aplikacije oz. operacijskega sistema. Namen SyncML je nasloviti ta problem nekompatibilnosti, ter ponuditi odprt standard kot nadomestilo. Več velikih podjetij, kot so Motorola, Nokia, Sony Ericsson, LG, IBM ter Siemens AG že podpirajo SyncML v svojih proizvodih. Vizija očeta SyncML, Phillipe Kahn-a je »Globalna sinhronizacija ter integracija žičnih in brezžičnih naprav«. SyncML se največkrat obravnava kot metoda za sinhroniziranje kontaktov in koledarja med ročnimi napravami ter računalnikom (prenosni telefon in PC). Nova različica standarda vključuje podporo za push-email in s tem nudi alternativo lastniškim rešitvam kot npr. BlackBerry.
Izmenjava podatkov med socialnimi omrežji
19
3. Rešitev V razmišljanju o problemu in zastavljenih ciljih smo prišli do nekaterih novih zaključkov, ki so nam odprli nov pogled na dan problem in nas prisilili k drugačnemu pristopu k rešitvi. Ugotovili smo namreč, da v razmišljanju o socialnem grafu in izmenljivosti podatkov ne smemo gledati le skozi prizmo obstoječih rešitev, ki jih uporabljajo socialna omrežja, ampak začeti na drugi strani, torej pri ugotavljanju, kaj v resnici je človekova socialna mreža. Tako se je izkazalo, da je trenutno najboljši približek socialni mreži človeka imenik kontaktov s katerim si izmenjuje sporočila. Ta imenik je lahko na primer del elektronske pošte ali imenik mobilnega telefona. Zaradi velikega obsega kontaktov, ki sestavljajo naš imenik elektronske pošte, predvsem po zaslugi množice nezaželenih sporočil in pa naše prakse, zaradi katere večinoma nismo vajeni redno urejati tega imenika, se je kot primernejša izbira izkazal imenik na našem mobilnem telefonu. V njem imamo večinoma shranjene kontakte, ki smo jih osebno spoznali, veliko večja verjetnost je tudi, da ga precej redno urejamo. Začetek rešitve je bil razvoj modula registracije, preko katere uporabnik vpiše svoje osebne podatke, ki jim je določil nivo zasebnosti. Nivoja sta dva in sicer javni ter privatni, kar pomeni, da so osebni podatki označeni z javnim nivojem vidni komurkoli, privatni podatki pa le ljudem, s katerimi jih izmenjamo na zahtevo. Na ta način smo rešili zasebnost podatkov in posamezniku dali možnost nadzora nad izmenjavo le-teh. Nadaljevanje rešitve je modul aplikacije, ki z uporabo standarda SyncML (OMA) bere kontakte iz imenika mobilnega telefona in jih shrani v imenik spletne aplikacije. Ta imenik je postal centralni imenik, ki skrbi za sinhronizacijo z ostalimi napravami in spletnimi omrežji. Predvidevamo, da uporabnik naše rešitve že uporablja ali je član najmanj enega socialnega omrežja, zato smo želeli ugotoviti, do katerih podatkov in na kakšen način lahko dostopamo. V ta namen smo si izbrali socialno omrežje Facebook, ki je med najbolj priljubljenimi ta hip, razvijalcem pa ponuja tudi platformo s pomočjo katere je mogoče razvijati Facebook aplikacije. Tako smo napisali pomožno Facebook aplikacijo, ki jo uporabnik naše rešitve doda v svoj Facebook račun.
Izmenjava podatkov med socialnimi omrežji
20
Na ta način nam dovoli, da preberemo seznam njegovih prijateljev, jih dodamo v naš centralni imenik in redno sinhroniziramo spremembe kontaktnih podatkov. V tem koraku smo naleteli na prvi primer, ko izmenjava podatkov med omrežji ni mogoča, saj nam Facebook omogoča le branje imen in priimkov, brez njihovih kontaktnih podatkov, kot sta e-poštni naslov ali telefonska številka. Zaradi tega je precej težje primerjati Facebook kontakte s tistimi iz našega telefona in ugotoviti kateri se ujemajo. Kontaktni podatki pa niso edini podatki, ki bi jih radi izmenjevali med socialnimi omrežji. Tukaj je še uporabniško generirana vsebina, kot so fotografije, video posnetki in podobno. V ta namen smo si za predmet raziskovanja izbrali tri spletna omrežja in sicer YouTube (www.youtube.com) za video posnetke, Flickr (www.flickr.com) za fotografije in že prej uporabljeni Facebook kot bolj splošno orientirano socialno omrežje, ki pa omogoča tudi ustvarjanje albumov in hranjenje fotografij. Nobeno od zgoraj omenjenih socialnih omrežij ne omogoča enostavne izmenjave podatkov oziroma medijskih vsebin, temveč omogočajo le omejeno funkcionalnost preko t.i. API-jev (Application programming interface). Tako smo naši rešitvi dodali modul “povezave” v katerem smo združili že prej napisano Facebook aplikacijo, razširjeno s funkcionalnostjo za kreiranje albumov in nalaganje fotografij, Flickr aplikacijo, ki omogoča nalaganje fotografij v albume ter YouTube aplikacijo, ki omogoča nalaganje videa. Na ta način smo uporabnikom omogočili nalaganje medijskih vsebin na več destinacij hkrati (npr. Flickr in Facebook), obenem pa smo pripravili tudi osnovo s katero bi lahko sinhronizirali vsebino med omenjenimi omrežji. Z do sedaj razvito rešitvijo smo uspeli premagati kar nekaj težav, ki so se na začetku zdele težko rešljive, postavljalo pa se je vprašanje, če je to dovolj, da bi povprečen uporabnik razumel kaj mu rešitev sploh ponuja in kako se njegova aktivnost na socialnih omrežjih kaže navzven, njegovim prijateljem in kontaktom. Med raziskovanjem obstoječih praks smo naleteli na zanimivo funkcionalnost, ki se imenuje “presence”. Ta se je začela uporabljati v rešitvah za neposredno sporočanje s programi kot so Microsoft Messenger, Google Talk, AOL Chat in podobnimi, njen glavni namen pa je bilo uporabnikovo sporočanje trenutnega statusa. Ta je bil na primer “dosegljiv”, “nedosegljiv”, “zaseden” in podobno. Logika se nam je zdela zanimiva, saj jo je mogoče enostavno razširiti in na podoben način uporabiti pri kontaktih, ki so shranjeni v imeniku, tako da “presence”, kot dodatno polje imenika, kaže zadnjo spremembo v kateremkoli socialnem omrežju, kjer je uporabnik dejaven, hkrati pa služi tudi kot povezava na to spremembo, ki je lahko neka nova vsebina, dogodek itd. Da bi presence lahko uporabili v naši rešitvi, smo morali najti način, kako pridobiti aktualne informacije o spremembah in novostih iz različnih omrežij, za kar so se idealno izkazali RSS viri. Te smo za vsakega uporabnika združili v OPML datoteko in jo v rednih časovnih razmakih analizirali. Flickr in YouTube zaradi svoje nivojske strukture omogočata enostavno prepoznavanje RSS virov, Facebook pa to onemogoča, zato bi bilo povezave do RSS virov potrebno za vsakega uporabnika vnesti ročno.
Izmenjava podatkov med socialnimi omrežji
21
Pri razvoju rešitve sta nam bili v veliko pomoč dve odprtokodni aplikaciji in sicer Funambol SyncML strežnik, ki omogoča sinhronizacijo kontaktov z mobilnim telefonom in različnimi e-poštnimi klienti ter Magpie RSS, ki smo jo uporabili za agregiranje RSS virov.
Izmenjava podatkov med socialnimi omrežji
22
3.1. Grafični vmesnik
Slika: Centralni imenik, kjer se prikazujejo sinhronizirani podatki iz imenika mobilnega telefona in Facebooka
Slika: Primer “presenca”, ki se prikazuje pod uporabnikovim imenom, klik nanj pa je povezava na zadnjo akcijo uporabnika, v tem primeru nov objavljen video
Izmenjava podatkov med socialnimi omrežji
23
Slika: Modul povezave, kjer uporabnik lahko poveže svoj račun z ostalimi socialnimi omrežji, v našem primeru so to YouTube, Flickr in Facebook.
Slika: Primer uporabnikovega toka dogodkov, združenega iz različnih socialnih omrežij.
Izmenjava podatkov med socialnimi omrežji
24
4. Zaključki Če povzamemo našo celotno rešitev, bi jo lahko opisali kot sestavljanko iz treh funkcionalnih delov:
1. Odkrivanje in sinhroniziranje kontaktov na enem mestu. 2. Nalaganje in sinhronizacija vsebine na različna socialna omrežja. 3. Odkrivanje in prikaz aktualnega toka dogodkov, ki prikazujejo posameznikovo
dejavnost na socialnih omrežjih. Rešitev je od nas zahtevala prilagajanje specifikam posameznega socialnega omrežja, predvsem, ko je šlo za uporabo API-jev. To pomeni, da bi morali za vsako socialno omrežje, s katerim bi se želeli povezati, razviti ločen del rešitve, ki bi uporabljala njihov API, to pa je zelo nepraktično in zahteva nenehno posodabljanje ter prilagajanje nestandardiziranim rešitvam.
Skozi razvoj celotne rešitve smo se srečali z mnogimi izzivi, ki so terjali precej razmišljanja in različnih pristopov k reševanju problemov. Pri vsakem socialnem omrežju smo naleteli na omejitve, ki onemogočajo popolno izmenjavo podatkov. Zanimivo je, da so te omejitve le redko tehnične narave, večinoma gre za interno politiko socialnega omrežja, da določenih podatkov ne bodo dali na voljo ali omogočili njihovega prenosa, četudi bi to lastniki teh podatkov želeli. V času, ko smo razvijali rešitev se je pojavilo kar nekaj novih orodij, ki pomenijo korake v smeri odprtosti socialnih omrežij in poenostavljene izmenjave podatkov. Tukaj je predvsem potrebno omeniti Google Contacts API, ki omogoča enostavnejše sinhroniziranje Google kontaktov z ostalimi omrežji ter Google Social Graph API, ki je namenjen prikazu posameznikovega socialnega grafa, seveda v primeru, da so za relacije in povezave med različnimi profili uporabljeni ustrezni standardi (FOAF, XFN). Omeniti velja tudi gibanji Data portability (dataportability.org) in Open Social. Prva je v zadnjih mesecih močno pridobila na prepoznavnosti in poskuša formalizirati sodobne standarde za izmenjavo podatkov med socialnimi omrežji, druga pa si prizadeva ustvariti enotno platformo, ki bi uporabljala standardiziran način za dostop do različnih funkcionalnosti socialnega omrežja ter komunikacijo med različnimi omrežji. Na ta način bi bil tudi razvijalcem poenostavljen postopek razvoja aplikacij, saj jim ne bi bilo potrebno za vsako socialno omrežje izdelati svoje aplikacije, ampak bi izdelali le eno in jo uporabili povsod. Data portability že deluje kot neodvisna in neprofitna organizacija, Open Social pa je v procesu nastajanja. Velikega pomena je podpora velikih igralcev na spletu, kot so Google, Yahoo, Microsoft in podobni, saj je brez njih težko uveljaviti kakršenkoli standard. Ob načrtovanju naše rešitve smo predvidevali, da bomo lahko aktivneje vključili OpenID, kot sistem avtentikacije uporabnika (single sign-on), vendar se je izkazalo, da je tehnologija še v povojih in je ni mogoče uporabiti v taki meri kot smo sprva predvidevali. Pogrešali smo natančnejšo defincijo nivojev dostopa in zasebnosti. Kljub uporabi zadnjih priporočil in dobrih praks na področju standardov (Mikroformati ...), smo prišli do zaključka, da rešitev še ni zrela za uporabo v produkcijskem okolju.
Izmenjava podatkov med socialnimi omrežji
25
Glede na hitrost razvoja tehnologij in standardov je pričakovati, da bomo kmalu lahko uporabljali standardizirane rešitve za izmenjavo podatkov, predvsem pa bomo spet postali lastniki svoje socialne mreže ter osebnih podatkov in jih na enostaven način prenašali med različnimi omrežji. Vse to bo tudi osnova za novo obdobje v spletu, imenovano Web 3.0.
Izmenjava podatkov med socialnimi omrežji
26
5. Viri
Joshua Tauberer (2008). What is RDF and what is it good for? http://rdfabout.com/intro/ (dostop 3.4.2008)
Eric Miller (1998). An Introduction to the Resource Description Framework http://www.dlib.org/dlib/may98/miller/05miller.html (dostop 3.4.2008)