websql querying the world wide web. - ksi.mff.cuni.czpokorny/dj/prezentace/3_58.pdfmotivacejazyk...
TRANSCRIPT
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
WebSQLQuerying the World Wide Web.
Radek Strnad
12. dubna 2011
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Web je heterogennı prostredı dokumentu, provazanych odkazy.Nejcastejsı metodou vyhledavanı Webu je dotazovanı indexacnıchserveru. Uzivatel ale musı byt seznamen s jejich prednostmi,nevyhodami a dotazovacım rozhranım. Tyto servery takeneumoznujı vyuzıt topologie dokumentu a dotazovat se na jejichstrukturu.
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Proc WebSQL?
Vyuzitı struktury dokumentu
Vyuzitı stavajıcıch indexacnıch serveru
Nastroj s minimalistickym navrhem
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Historicke zarazenı
Je treba upozornit na datum navrhu WebSQL, ktere jej radı do let1994-1996, kdy neexistovaly nektere soucasne vyhledavace - vpracıch se odkazuje na Yahoo a Lycos. V soucasne dobe je vyvojneaktivnı a pod pojmem Web SQL se skryva HTML 5 API propodporu SQL na strane klienta.
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Historie vyhledavacu
1990 Archie
...
1994 Lycos, Go.com, WebCrawler, MetaCrawler
1995 Yahoo! (katalog), Altavista
1996 Hotbot, Ask Jeeves
1997 Northern Light
1998 Google, MSN Search
1999 AlltheWeb
...
2004 Yahoo! search
...
2012 Novy Hledac?
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Velikost Internetu
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Relacnı model WWW
Jazyk WebSQL ma podobnou syntaxi jazyku SQL.
Chybı schema databaze
Minimalisticky navrh - pouzijı se objekty, kterymi lzeidentifikovat libovolny dokumentu
Uniform Resource Locator (URL)Binarnı obsahMIME typeTitulekVelikost obsahuDatum poslednı zmeny
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
n-tice Document
Document[url, title, text, type, length, modif]
Prıklad - vsechny dokumenty referujıcı o IBM
SELECT d.url, d.title, d.length, d.modif
FROM Document d SUCH THAT d MENTIONS "IBM"
WHERE d.type = "text/html"
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Odkazy
Tag <a href="link">label</a> definuje vztah mezi dokumenty
zdrojove URL
cılove URL
popisek odkazu
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
n-tice Anchor
Anchor[base, href, label]
Prıklad - vsechny odkazy s popiskem “applet” z dokumentu o Jave
SELECT y.label, y.href
FROM Document x SUCH THAT x MENTIONS "Java",
Anchor y SUCH THAT base = x
WHERE y.label CONTAINS "applet"
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Druhy odkazu
interior 7→ cıl se nachazı uvnitr zdrojoveho dokumentu
local → zdroj i cıl jsou dokumenty ruzne, ale v ramci jednohoserveru
global ⇒ zdroj i cıl se nachazejı na ruznych serverech
Vyrazy slozene z 7→,→,⇒ se vyuzıvajı pri znacenı cesty mezidokumenty. Prazdna cesta se znacı =. Vyrazy se dale mohouskladat (.), prıpadne vyuzıvat logicke spojky nebo (|), ci opakovanı(*).
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Prıklad
Na domovske strance MFF hledej vsechny dokumenty v hloubcedva a mene odkazu (nachazajıcıch se na stejnem serveru), jejichztitulek obsahuje “Dotazovacı jazyky”.
SELECT d.url, d.title
FROM Document d SUCH THAT
"http://www.mff.cuni.cz/" =|→|→ .→ dWHERE d.title CONTAINS "Dotazovacı jazyky"
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Prıklad
Na domovske strance MFF hledej vsechny dokumenty v hloubcedva a mene odkazu (nachazajıcıch se na stejnem serveru), jejichztitulek obsahuje “Dotazovacı jazyky”.
SELECT d.url, d.title
FROM Document d SUCH THAT
"http://www.mff.cuni.cz/" =|→|→ .→ dWHERE d.title CONTAINS "Dotazovacı jazyky"
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Formalnı definice jazyka WebSQL
Query := SELECT AttrList FROM DomainSpec [ WHERE Condition ] ;
AttrList := Attribute {, Attribute}
Attribute := Field | TableVar.Field
Field := Id
TableVar := Id
DomainSpec := DomainTerm {, DomainTerm}
DomainTerm := Table TableVar SUCH THAT DomainCond
DomainCond := Node PathRegExp TableVar
| TableVar MENTIONS StringConstant
| Attribute = Node
Node := StringConstant
| TableVar
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Formalnı definice jazyka WebSQL - pokracovanı
Condition := BoolTerm {OR BoolTerm}
BoolTerm := BoolTerm {AND BoolTerm}
BoolTerm := Attribute = Attribute
| Attribute = StringConstant
| Attribute CONTAINS StringRegExp
| (Condition)
PathRegExp := PathTerm {| PathTerm}
PathTerm := PathFactor {PathFactor}
PathFactor := PathPrimary[*]
PathPrimary := Link
Link := =|⇒|→|7→
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Datovy model
Nynı se pokusıme zadefinovat WebSQL z formalnıho hlediska zapouzıtı tzv. virtualnıch grafu (struktury WWW).
Dokumenty - Node = [id : Oid , ..., ai : ti , ...]Odkazy - Link = [from : Oid , to : Oid , ..., bj : tj , ...]
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Vytvorenı virtualnıho grafu
prohledavanı znamych dokumentu
dotazovanı vyhledavacu
mapovanı dokumentu a odkazu na Node a Link
PLink = {α, β, γ, ...}PNode = {P,Q,R, ...}, {x | x ∈ dom(Oid),P(x) = true} -napr. asociace s urcitym klıcovym slovem
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Definice virtualnıho grafu
Virtualnı graf je ctverice Γ = (ρNode , ρLink ,PNode ,PLink), kde platı:
ρNode : dom(Oid)→ dom(Node)
ρLink : dom(Oid)→ 2dom(Link)
ρNode a ρLink jsou castecne rekurzivnı funkce
PNode je mnozinou unarnıch predikatu z dom(Oid)
PLink je konecnou mnozinou unarnıch predikatu z dom(Link)
Povsimnete si, ze definice grafu Γ v sobe obsahuje definiciorientovaneho grafu G (Γ) = (V ,E ), kde V = ρNode(dom(Oid)) aE = ∪oid∈dom(Oid)ρLink(oid)
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Cesty v grafu
Podobne jako v orientovanem grafu si zadefinujeme cesty vevirtualnım grafu:
p = (e1, e2, ...)
Pro hranu e vybereme z PLink mnozinu vlastnostı α.
Mnozinu vlastnostı odkazu e definujeme jakoΛ(e) = {α ∈ PLink | α(e) = true}Pokud je p = (e1, e2, ...) cesta, pak definujemeΛ(p) = (Λ(e1),Λ(e2), ...)
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Atomicke vzdalenosti
Definice
Cesta p odpovıda regularnımu vyrazu R prave kdyzΛ(p) ∩ L(R) 6= ∅
Definice
Jako atomickou vzdalenost v grafu Λ povazujeme jednu snasledujıcıch moznostı:
Path(u, R, x) u, x jsou typu Oid , prıpadne promenne, R jeregularnı vyraz
P(x) P ∈ PNode a x je Oid nebo promenna
From (u, x) u, x jsou typu Oid , prıpadne promenne
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Semantika WebSQL
Predpoklady:
sestaveny graf Γ = (ρNode , ρLink ,PNode ,PLink), syntaktickyspravny
PNode = {Cw | w ∈∑∗}, pro kazde w ∈
∑∗,Cw (n) = true,pokud dokument n obsahuje slovo w
uvazujeme PLink = {7→,→,⇒}
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Semantika WebSQL
Kalkulus WebSQL
SELECT L FROM δ WHERE φ se prelozı na πLσφδ′
δ′ = {x1, ..., xn | A1, ...,An} se zıska z δ = C1, ...,Cn dlenasledujıcıch pravidel
Ci = Document x SUCH THAT uRx , pak Ai = Path(u,R, x)
Ci = Document x SUCH THAT x MENTIONS w , pakAi = Cw (x)
Ci = Anchor x SUCH THAT x .base = u.url , pakAi = From(u, x)
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
V konvencnı databazı zjistujeme cenu dotazu, coz je funkcevelikosti databaze. Ve WebSQL znamena zjistenı ceny dotazu urcitvelikost podsıte, ktera se pri ocenovanı dotazu musı prohledavat.
Dulezitym faktorem je rovnez cena prıstupu k takove podsıti. Vsoucasne architekture webu to znamena stahnutı kopie, kde jeuzkym hrdlem prıpojenı na internet. Cena je v tomto prıpadeovlivnena velikostı jednotlivych souboru
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Vyrazy bez globalnıch linku mohou pristupovat jen k lokalnımdokumentum a majı cenu O(1)
Vyrazy, ktere obsahujı “hvezdickovane” podvyrazy mohoueventuelne indexovat vsechny dokumenty v sıti. Proto je cenaO(n)
Vyrazy s globalnımi linky, ale zadny z nich nenı“hvezdickovany” muze pristoupit k omezenemu mnozstvıdokumentu. Pokud bude vyraz ve tvaru→l1 .⇒ .→l2 .⇒ ...→lm , kdy l = 1 + max(l1, l2, ...lm), jepocet dokumentu omezenychmin(n, (m(l + 1)(k ∗min(s, k l))m))
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
min(n, (m(l + 1)(k ∗min(s, k l))m))
k - pocet URL v jednom dokumentu
s - pocet dokumentu v ramci jednoho serveru
min(s, k l) - pocet ruznych dokumentu, zıskanych cestou →li ,k ∗min(s, k l) je nejhorsım prıpadem
k ∗min(s, k l) - pocet dokumentu na konci cesty, nasobımedelkou cesty
vyse uvedeny prıpad je nejhorsım moznym odhadem
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Vyhodnocenı
Neuvedeno do praxe
Zustalo u navrhu a testovacı implementace
Rychlost - od desıtek sekund po desıtky minut na univerzitnılince a na dvouprocesorvem SPARCu s 256MB RAM (rok1995!)
Uzitı zamysleno pro programatory
selektivnı indexaceobdoba “views” z databazıudrzba linku na strankach
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Struktura Java appletu
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Vzhled Java appletu
Radek Strnad [email protected]
WebSQL
Motivace Jazyk WebSQL Formalnı semantika Cena dotazu Zaver
Zdroje:
A. O. Mendelzon, G. A. Mihalia, T. Milo - Querying theWorld Wide Web (1996)
http://en.wikipedia.org/wiki/Web search engine
http://www.searchenginehistory.com/
Radek Strnad [email protected]
WebSQL