Doktoriseminar: tanel

Allikas: Lambda

Materjale ja infot 4 detsembri seminariks


Qcon 2008 Konverents:

Baasivõrdlused: Media:53180082.pdf

Tagging, folksonoomiad, loogika ja reeglipõhine kasutamine

Linke läbitöötamiseks

NB! Otsi samadel teemadel ise asju juurde (mh google scholar), vali häid ideid ja mõtle juurde!

http://scot-project.org, konkreetsemalt http://scot-project.org/scot/index.html (Kalle)

http://www.w3.org/TR/skos-primer/ (Andres)

http://www.semanticdesktop.org/ontologies/2007/08/15/nao/ ja http://www.lambda.ee/index.php/Pilt:Integrfolksonomiesfulltext.pdf (Enar)

http://scot-project.org/pubs/Kim_TagOnt.pdf ja (viidatud http://scot-project.org lehelt) ja http://www.lambda.ee/index.php/Pilt:Folksonomiesmemnet2007.pdf (Andri)

http://adammathes.com/academic/computer-mediated-communication/folksonomies.pdf ja http://www.lambda.ee/index.php/Pilt:Semanticsfolksonomies.pdf (Madis)




Märkmeid: ideid, viiteid ettevalmistamiseks 30 oktoobriks.

meeldetuletus

Reeglikeel: klassikalise loogika alus: selge semantika.


RDF, OWL, "erireeglikeeled", SQL (osaliselt) loogikas esitatavad.


subject,predicate,object

       type   


UrI:Jaan, age, 18  : age(URI:Jaan,18). tegelikult holds(URI:Jaan,age,18)

  age(X,Y), >(Y,70) => reallyold(X).


Uri:Jaan, rdf:type, person: person(URi:Jaan). tegelikult holds(URI:Jaan,type,person)



age, valuetype, numeric: valuetype(age,numeric).

  eesmärk: age(X,Y) => numeric(Y).
  valuetype(P,Z) => (P(X,Y) => Z(Y)).


  holds(P,valuetype,Z) => (holds(X,P,Y) => holds(Y,type,Z))


SQL:


Person table, fields id,name,age,sex


Job table, fields, id personid (ref person id), jobname, salary


select person.name, job.jobname from person,job where
person.id=job.personid and salary>1000


Person(I,N,A,S) & Job(I,I,J,S) & >(S,1000) => answer(N,J).


Person(I,N,A,S) & Job(I,P,J,S) & >(S,1000) & =(I,P) => answer(N,J).



Stsenaariumid

1. Databaaside mergimine. Employee(timestamp,..,age,..) panna teise kokku koos

 Client(,,personcode,...).  
  Esimesest by(timestamp,age) = ...


   Person(,,birthyear,....). 


   Employee,age:  vanus
   Client: personcode: vanus


   Person:vanus: birthyear


2. Restoranide soovitamine.


    Restoranide webpage: nimed, aadressid (,....)
    Blogid, soovitussaidid vms: nimi, inimeste tagid 
      (national:2,hiina:5,tore:10,jama:2,...)


    holds(uri:wuli,address,"narva mnt 27")
    holds(uri:wuli,type,national)


     - usaldusvaarsuse number vaite kohta
       [uri:12] holds(uri:wuli,type,hiina) 5?     
       holds([uri:12],usaldusvaarsus,0.2)


     - usaldusvaarsuse number vaite sees  
       holdswn(uri:wuli,type,hiina,0.2)


    holds(uri:wuli,type,tore) 10?
    holds(uri:wuli,type,jama) 2?



3. Proge, mis annab automaatselt teada huvitavatest juhtumistest.


 Lähisugulane sõidab huvitavasse riiki ja teeb pilte, tahaks näha.
     venna blogi, kuhu paneb pilte (UUED reisid ainult)


 pildiga seotud otse (pildifailist): kuupäev
 blogisissekande: brasiilia, reis


 oma brauseris lingi bookmarki, brauseris tag vend


 veebipage sõnastikuga:  vend: lähisugulane,nimisõna,meessoost,


 holds(X,vend,Y) => holds(X,lahisugulane,Y).
 holds(X,vend,Y) => holds(Y,type,meessoost)
 holds(vend,type,nimisona).




info, mis sorti või headuses restoran: inimeste tagidest


fotod: pildi tagid (aeg)



Usaldusvaarsus ja selle kasutamine

- Yks sait ja seal loeme kokku tage


- Brauseri bookmargid (isiklikud)


Isiklikest saab teha koondsaidi ja seal statistikat


Voiks tekkida mehhanism inimeste endi usaldusvaarsuse hindamiseks:

 kokkukoondamisel kasutame inimese oma usaldusvaarsuse koefitsienti


Inimeste usaldusvaarsus ei ole globaalne:

 - igayks saaks ise oelda teiste inimeste isiklikku usaldusvaarsust


Kompromissvariant:


- tagi numbri statistikal ei ole inimeste isiklikku usaldusvaarsust
- oma brauseri bookmargi tagid, need on minu jaoks eriti usaldusvaarsed


usaldusvaarsuse numbri kasutamisest

- iga fakti kohta saaks hoida numbrit: usaldusvaarsust

 (modaalsed loogikad, toenaosusloogika, fuzzy loogika, ....)


- kindlad reeglid & faktid: usaldusvaarsus alati 1


kasutada?


fakt A, uv 0.5 P(0.5,..,...,) selle asemel P(,...,..):0.5

fakt B, uv 0.9 P(0.9,...,...) selle asemel P(,...,..):0.9


reegel A & B =>[0.9] C,


jareldame C, uv: 0.4


yldine tahelepanek: sygava jarelduse korral (palju samme) uv kogu aeg vaheneb.


uv: 0.001


eesmark: produtseerida jareldusi, sorteerida uv jargi, kuvada

kohe filter: alla 0.6 ei taha yldse.


Probleem: usaldusvaarsus muutub!!!!


Tana: holds(uri:wuli,type,good):0.7

Homme: holds(uri:wuli,type,good):0.6


yle 0.7: super

alla 0.7: -super


vanade enam mitte kehtivate asjade retractimine voimalik, aga kole toomahukas


vaja oleks hoida usaldusvaarsuse juures tema aega!


Tana: holds(uri:wuli,type,good):0.7,15-10-2007,inimeste modifikaatorid?

Homme: holds(uri:wuli,type,good):0.6,20-7-2008


tore automaatne efekt: vanad infod muutuvad ebaoluliseks



tagi info nö standardne loogikapõhine esitamine

näiteks:

 pildiga seotud otse (pildifailist): kuupäev
 blogisissekande: brasiilia, reis


URI:bs [brasiilia,reis]


holds(URI:bs,connected,brasiilia).

holds(URI:bs,connected,reis).


Kuidas connected predikaati kasutada?


Voibolla vaja moelda, kuidas connected eri kohtadest tapsemaks muut?


holds(X,connected,Y) & holds(Y,type,kohanimi) => holds(X,location,Y) [0.95]


holds(URI:bs,connected_mybrowser,brasiilia).

holds(URI:bs,connected_blogsitex,reis).

...


Source???


holds(URI:bs,connected,brasiilia):uv,timestamp,source,....

holds(URI:bs,connected,reis):....