# Doktoriseminar: tanel

## Materjale ja infot 4 detsembri seminariks

Qcon 2008 Konverents:

Baasivõrdlused: Media:53180082.pdf

## Tagging, folksonoomiad, loogika ja reeglipõhine kasutamine

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

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

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

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

### 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).

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