Consultas ad-hoc de estatísticas disponíveis na Web

14
Consultas ad-hoc de estatísticas Consultas ad-hoc de estatísticas disponíveis na Web disponíveis na Web Idevan Gonçalves Freire Junior [email protected]

description

Consultas ad-hoc de estatísticas disponíveis na Web. Idevan Gonçalves Freire Junior [email protected]. Extrair a estrutura de uma home-page. Distinguir as classes url e webdoc . As url ’s são instâncias de strings com método get definido. - PowerPoint PPT Presentation

Transcript of Consultas ad-hoc de estatísticas disponíveis na Web

Page 1: Consultas ad-hoc de estatísticas disponíveis na Web

Consultas ad-hoc de estatísticas disponíveis na Consultas ad-hoc de estatísticas disponíveis na WebWeb

Idevan Gonçalves Freire [email protected]

Page 2: Consultas ad-hoc de estatísticas disponíveis na Web

Extrair a estrutura de uma home-pageExtrair a estrutura de uma home-page

Distinguir as classes url e webdoc. As url’s são instâncias de strings com método get definido. Elementos típicos da classe webdoc são paginas HTML. Métodos de webdoc: url, modif, type, hrefs@(label).

Page 3: Consultas ad-hoc de estatísticas disponíveis na Web

Modelando a webModelando a web Classe url modela um documento como um objeto

• “http://www.di.ufpe.br/~compint/” seria o id-term de um objeto da classe url

Método get para recuperar o documento:• “http://www.di.ufpe.br/~compint/”.get[ ] • get transforma uma página HTML em um objeto webdoc

Documentos recuperados têm a seguinte estrutura:• url::string [get =>webdoc]• webdoc[self =>url; author =>string; modif => string; type

=>string; hrefs@(string)=>> url; error =>>string].

Page 4: Consultas ad-hoc de estatísticas disponíveis na Web

Consultando a webConsultando a web Exemplo:

• “http://www.di.ufpe.br/~compint” = ourUrl.• ourUrl:url.• ourServer = “www.di.ufpe.br/”.• X.get:ourPage :- X: ourUrl.• Y.get:ourPage :- X:ourPage[hrefs@( _ ) ->> Y],

substr(ourServer, Y). Recupera os links que estão no mesmo servidor

• X:ourPage[hrefs@( _ ) ->> Y], substr(“mailto:”,Y). Recupera todos os endereços de e-mail achados nas páginas

visitadas

Page 5: Consultas ad-hoc de estatísticas disponíveis na Web

Modelo da WebModelo da Web

Page 6: Consultas ad-hoc de estatísticas disponíveis na Web

Integração do Modelo da WebIntegração do Modelo da Web

Page 7: Consultas ad-hoc de estatísticas disponíveis na Web

Bases de dados semi-estruturadasBases de dados semi-estruturadas

Page 8: Consultas ad-hoc de estatísticas disponíveis na Web

Web SkeletonWeb Skeleton

Um extrator web skeleton genérico para FLORID

Page 9: Consultas ad-hoc de estatísticas disponíveis na Web

NBA Skeleton ExtractorNBA Skeleton Extractor

Para NBA:root[src->>{nba}].

nba = "http://www.di.ufpe.br/~streak/espn.sportszone.com/nba/statistics/1998/".>> lsnba3ptpct.html nbafgpct.html nbascoring.html teamstatoff.htmlnbaassists.html nbaftpct.html nbasteals.html tmcompare.htmlnbablocks.html nbarebound.html teamstatdef.html

= substr("/nba/statistics/1998/nba",Y).

= substr("/nba/statistics/1998/",Y).

Page 10: Consultas ad-hoc de estatísticas disponíveis na Web

Operadores de expressões regularesOperadores de expressões regulares .*

• uma linha de def• um exemplo simplissimo

\( \)

Page 11: Consultas ad-hoc de estatísticas disponíveis na Web

Percorrendo as páginasPercorrendo as páginas As tabelas com os líderes estatísticos estão nas páginas

definidas por e que iniciam com nba (como previsto em ). Logo, ?- nba..L. traz todas as páginas dos líderes estatísticos. Assim podemos construir as tabelas estatísticas:T:tabela :-match(nba..L.get,"<pre>\(.*\n\)*</pre>","",T).

<pre><b>Player Gp PTS AVG</b>Michael Jordan, Chi 82 2357 28.7Shaquille Oneal, Lal 60 1699 28.3...Rod Strickland, Was 76 1349 17.8</pre>

Page 12: Consultas ad-hoc de estatísticas disponíveis na Web

Consultas às tabelas estatísticasConsultas às tabelas estatísticas Para se identificar os líderes estatísticos de um dos times faz-

se (por exemplo):R:crqLal :- T:tabela,

match(T,"\(.*Lal.*\)","",R).

Para se armazenar a quantidade de líderes de um determinado time em sua base, faz-se:

?- sys.strat.doIt[].X[leaders->N] :- X=lal,

N = count{R; R:crqLal}. Definição dos times: 2 linhas, ..., 1 linha

Page 13: Consultas ad-hoc de estatísticas disponíveis na Web

Geração de lista ordenadaGeração de lista ordenada

Page 14: Consultas ad-hoc de estatísticas disponíveis na Web

Demo ao vivoDemo ao vivo