Kontrolės inversija socialiniame semantiniame tinkle

Ilgas laikas nėra rašymas. Statistika: pradėjau šį įrašą prieš gerus keturis mėnesius (ša, žinau, kad kitą pradėjau prieš beveik metus), todėl gavosi kiek per ilgas… Pradžia – ganėtinai techniška ir apie programavimą, bet pats įrašas iš tikro tėra apie idėją ir svajonę. Kodėl įvairiose svetainėse turiu registruotis aš, o ne svetainės registruojasi pas mane? Neaušink burnos, man neįdomu – duok santrauką.

Kontrolės inversija

Vienas iš objektinio programavimo principų – klasės ir objektai turi būti sukurti taip, kad būtų lengvai perkeliami į kitą kontekstą, o jų vidinis veikimas turėtų būti niekam neaktualus. Tradiciškai, įvairūs programavimo varikliukai (framework) būdavo funkcijų bibliotekos. Programuotojas atsirinkdavo ir iškviesdavo reikalingus varikliuko elementus. Nesigilinant į smulkmenas, toks būdas dažnu atveju gali būti kiek suoptimizuotas – mano manymu, geras variklis yra ne funkcijų rinkinys, o programavimo taisyklių (coding conventions) kodeksas, kurio laikantis dalykai “įvyksta” automatiškai. Wikipedija Inversion of Control apibūdina labai gražiu “Holivudo principu”: neskambinkite mums, mes paskambinsime jums (angliškai šis žodžių žaismas programavimo kontekste skamba geriau). Pvz. vietoj to, kad konkrečią užduotį vykdantis kodas susirinktų duomenis pats, visą informaciją jam surenka ir paduoda variklis, nes to reikalaujanti klasė yra aprašyta (sukurta) taip, kad variklis atpažintų kokie duomenys yra reikalingi (dependency injection).

Apvertus kontrolę ir daugiau darbo atidavus užkulisinėms jėgoms, perkeliamumo principas gali būti įgyvendintas efektyviau – konkrečią užduotį atliekantis kodo gabalas (klasė) yra rašomas taip, kad atliktų tik savo užduotį, nepriklausomai nuo variklio. Laikantis tokios filosofijos yra kuriamas Spring Framework. Iš jos išplaukia ir daugiau patogumų, kaip kad programavimas tiesiog nurodant kas yra kas (declarative programming). Tokie metodai leidžia valdyti kodą ir kurti sprendimus daug greičiau ir efektyviau. Verslo klausimo, per kiek laiko atsiperka frameworko kūrimas, šiuo atveju nenagrinėju.

Online bendruomenių ypatumai

Viskas paprasta kaip trys kart aštuoni ir galioja ne tik internete – bet kurioje bendruomenėje išryškėja lyderiai, o ten kur yra lyderiai – yra ir nepatenkintų. Kai kurios bendruomenės yra sukurtos taip, kad jos įkūrėjas turi aukščiausią balsą, kitose galioja “demokratija”. Nepaisant visko – ilgainiui vistiek išsiveržia asmenybės ego, kad bendruomenė turi elgtis taip, kaip atrodo kažkuriam (kiekvienam) individualiam nariui.

Kalbant apie forumus arba pažinčių svetaines, gana lengva pastebėti, kad kažkodėl atsiranda narių, kurie mano, kad tai yra nuosavybė. Šitas veiksnys priklauso nuo lyderių vaidmens ir bendruomenės dydžio, tačiau natūralus instinktas yra galvoti “vat jeigu aš čia būčiau vadas, tai padaryčiau tvarką”.

Semantinis tinklas į pagalbą

Grįžtam prie pradinio klausimo (scrollink į viršų ir pasikartok). Atsakymai paprasti:

  • stagnuojantys verslininkai bijo, kad technologijų, kurios tai leis, tobulinimas yra negrįžtama investicija
  • stagnuojantys verslininkai bijo, kad “jų” klientai tokiu būdu gali nutekėti pas konkurentus
  • neišspręsta potencialių spam-cialinių tinklų problema
  • techninis barjeras kol kas dar nėra įveikiamas eiliniam Jonui

Kalbant apie technologijas – sprendimas jau iš esmės yra surastas – reikalinga tik protinga integracija tarp OpenID, FOAF, protingų socialinių tinklų kūrimo agentų ir laisvai prieinamos bei privatumo nepažeidžiančios neutralios terpės, kurioje ta integracija gyventų. Štai jums modelis:

  1. Protingas agentas ateina į mane aprašantį resursą (terpė mano atveju turbūt būtų mano blog’as, kitų žmonių atveju – tegul ir Facebook ar pazintys.lt anketa – jokio skirtumo)
  2. Protingas agentas randa mane aprašantį OpenID tag’ą, taipogi viešą informaciją apie mane ir paprašo leidimo gauti daugiau informacijos – kontrolės inversija įvyksta būtent čia
  3. Atėjęs į savo informacijos valdymo erdvę, aš randu, kad protingas agentas buvo apsilankęs ir susidomėjo manimi – pagal tai aš nusprendžiu kokio tipo informaciją aš noriu jam rodyti – visus “draugus”; draugus, kurie jau yra mano LinkedIn; jokių draugų – tik merginas; tik tuos, su kuriais susirašinėju per GTalk; tik vyresnius nei 18 pažįstamus, iš mažo, giliai paslėpto forumo; tik (įrašyk pats)
  4. Protingas agentas, gavęs mano leidimą, kaupia informaciją ir naudoja ją savo tikslams, tuo pačiu man pranešdamas apie mano draugus ir draugų draugus atgal į mano asmeninę konsolę
  5. Aš niekada nesilankau protingo agento svetainėje, nes neturiu jokio noro ten eiti, tačiau jeigu nuspręsčiau ten eiti – identifikuočiausi su tuo pačiu savo OpenID

Panašiu principu duomenis apie mane jau kaupia Pipl – skirtumas tik tas, kad jie manęs neprašė jokio leidimo. Todėl ir neturi daugiau duomenų apie mane, o jų robotas nors ir veikia gana įspūdingai, gūglinti ir daryti rimtų išvadų apie mano alternatyvias personas dar nemoka. Side note: jei kas paaiškintų ką ten reiškia tag’ai “Gio” ir “Iya” prie mano profilio, būčiau labai dėkingas…

Apie kovą su spam’u aš išmanau nedaug, tačiau jeigu last.fm sugeba rekomenduoti muziką, ir daryti tai daugiau mažiau taikliai, tai lygiai tokiu pačiu principu gali veikti “socialinių tinklų/protingų agentų” rekomendacijos – viskas atsiremia į elementarų pasitikėjimo-karmos reitingą tarp “mano draugų”.

Apie kovą už privatumą kalbėti manau jau nebeverta – aš turbūt visiškai nebesigėdyčiau nurodyti visus savo socialinius kontaktus ir darykit jūs kokias norit išvadas apie mane. Visi daro klaidų, visi turi istorijas. Visų istorijos surandamos per Google. Galbūt kai kandidatuosiu į prezidentus man tai ir atsirūgs, bet tai bus ne anksčiau kaip po kokių 20 metų, tai tada ir žiūrėsim ką su visu tuo daryti (agile!)

Verslo modeliai

  • Įmonė, kuri kuria “protingus agentus” ir parduoda jas corporate klientams, pvz. Omnitel galėtų nusipirkti tokį agentą ir prisijungti prie one.lt duombazės, arba AirBaltic galėtų prisijungti prie Delfi komentarų. Kam jiems to reikia? Ogi tam, kad palaikyti ryšį – vienintelis mano ideologinis reikalavimas – infomacija, kuri kaupiama, turi būti naudojama paslaugų gerinimui ir derinimui, o ne tiesioginiams pardavinimas (t.y. speminis skambininimas telefonu man tiesiogiai) Tokiu būdu aš kaip klientas, galėčiau nesunkiai išreikšti savo nuomonę apie jų produktus savo pageidaujamame portale, o jie tą informaciją gautų.
  • Vertikalios svetainės bet kuria tema, pvz. svetainė A apie siuvinėjimą galėtų automatiškai perduoti mano žinutę, kurią parašiau svetainėje B, mano draugams iš svetainės C. Nepaisant to, kad žinutė skaitoma svetainėje B, taigi svetainės A ir C lyg ir prarastų “klientų”, tačiau realiai jos įgautų lygiai tas pačias galimybes pritraukti klientus iš kitur, o be to vistiek išliktų lyderiais savo specifinėje sferoje.
  • FriendFeed tipo agregatoriai, tik geresni ir vėlgi – su savo vertikaliomis specializacijoms (kartais kas tinka viskam, netinka niekam)
  • Saugumo/pasitikėjimo autoritetai (Verisign, anyone?)
  • Teisininkai, kurie galėtų paduoti visas aukščiau paminėtas svetaines į teismą, už patentų ar įsivaizduojamų teisių pažeidimus

Bet kokiu atveju, tokią “ekosistemą” aš įsivaizduočiau tik paremtą atvirais standartais ir sąžiningumu. Pirmas reikalavimas yra grynai tam, kad “pasitikėjimo” sprendimai nebūtų koncentruoti į vieną įmonę (labas rytas, Google!), o pats “pasitikėjimo sprendimų” tinklas būtų išsibarstęs taip kaip TPC/IP ir pageidautina paremtas P2P – atkirtus vieną šaką, kitos gali išgyventi, o galutinė kontrolė ir lankstumas grįžta vartotojui, o ne paslaugų tiekėjui.

Sąžiningumo kriterijų įgyvendinti yra kiek sunkiau… Tačiau vistiek principas “nekąsk į tave maitinančią ranką” turėtų paimti viršų. Jeigu pavyktų tai pasiekti – tai būtų galutinė e-mail spamo mirtis. Jau dabar visi žmonės, kuriuos aš pažįstu, mane suranda kitais kanalais, o aš jų adresų net nežinau. Ir nenoriu žinoti.

Santrauka

  • Apverčiam kontrolę: ne aš registruojuosi, bet mane suranda
  • Apverčiam kontrolę: ne kažkas kaupia mano duomenis, o aš padarau juos viešai prieinamais ir leidžiu arba neleidžiu jais naudotis, o manęs klausoma
  • Apverčiam kontrolę: ne pardavimų vadybininkai man pudrina smegenis, o aš jiems perduodu, ko aš noriu
  • Apverčiam kontrolę: ne aš atsitiktinai atrandu, kad Moby rašo blog’ą, o last.fm perduoda į mano naujienų skaityklę, kad vienas iš mano mėgstamų atlikėjų turi RSS; tuo tarpu svetainė, kuri padeda įsivertinti savo politines pažiūras, nuspėja, kad Moby ir mano idėjos kartais sutampa; todėl mano draugo Wordpress administracijos įžanginiame puslapyje atsiranda naujų rekomendacijų. Ir jokio taginimo ar kalbos analizės!

PS žmogau, kuris viename socialiniame tinkle teigia, kad jo vardas ir pavardė yra lygiai tokie patys kaip mano – pakviesk mane alaus. Apverčiau kontrolę – buvo nulis, liko nulis.

2 Responses to “Kontrolės inversija socialiniame semantiniame tinkle”

Komentarų RSS

Oh, true. Kažkaip kai anksčiau žiūrėjau neužstrigo būtent tas aspektas :) Labai geras žingsnis į priekį :) Tolesnis žingsnis būtų daugiau providerių ir daugiau consumerių to dalyko… o tada beliktų tik juos apjungti po vienu stogu… In your/my dreams.