Doktoriseminar: tanel
Sisukord
Materjale ja infot 4 detsembri seminariks
- Oracle semantic tech
- Monet db artiklid
- c-store column oriented database:
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):....