Consultas ad-hoc de estatísticas disponíveis na Web Idevan Gonçalves Freire Junior
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. Elementos típicos da classe webdoc são paginas HTML. Métodos de webdoc : url, modif, type,
Modelando a web * Classe url modela um documento como um objeto seria o id-term de um objeto da classe url * Método get para recuperar o documento: ] 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; url; error =>>string].
Consultando a web * Exemplo: = ourUrl. ourUrl:url. ourServer = X.get:ourPage :- X: ourUrl. Y.get:ourPage :- _ ) ->> Y], substr(ourServer, Y). t Recupera os links que estão no mesmo servidor _ ) ->> Y], substr(mailto:,Y). t Recupera todos os endereços de achados nas páginas visitadas
Modelo da Web
Integração do Modelo da Web Integração do Modelo da Web
Bases de dados semi-estruturadas
Web Skeleton * Um extrator web skeleton genérico para FLORID
NBA Skeleton Extractor Para NBA: root[src->>{nba}]. nba = " m/nba/statistics/1998/". >> ls nba3ptpct.html nbafgpct.html nbascoring.html teamstatoff.html nbaassists.html nbaftpct.html nbasteals.html tmcompare.html nbablocks.html nbarebound.html teamstatdef.html = substr("/nba/statistics/1998/nba",Y). = substr("/nba/statistics/1998/",Y).
Operadores de expressões regulares *.* uma linha de def um exemplo simplissimo * \( * \)
Percorrendo 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," \(.*\n\)* ","",T). Player Gp PTS AVG Michael Jordan, Chi Shaquille Oneal, Lal Rod Strickland, Was
Consultas à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
Geração de lista ordenada
Demo ao vivo