Thursday, July 10, 2008

Tutorial DB_OO3/Mogul - 1. Base de dados

Este post é o primeiro do tutorial DB_OO3/Mogul.

Ok, então para a primeira parte, vamos definir o modelo de dados. É aqui que tudo começa. O objectivo é fazer um motor de pesquisa que seja capaz de dar acesso directo aos dados presentes nestas duas páginas:

Observando as páginas, temos duas entidades na base de dados: Elementos e Atributos. Os elementos têm um nome, uma versão de HTML e um link para a especificação. Os atributos têm a mesma coisa, mais uma ligação muitos para muitos para os elementos em que são autorizados. Dá qualquer coisa com este aspecto:

O script de criação de base de dados, para postgresql, está aqui.

A seguir, é preciso alimentar a base de dados. Fiz isso com um par de XSLTs que, qual cozinheiro na TV, tiro assim do forno:

As duas são relativamente básicas, e o objectivo deste tutorial não é explicar XSLTs (ui, dava para meio ano). Com as XSLTs e com um processador de XSLTs (eu uso o xsltproc que vem com o gnome), e com o htmltidy, alimenta-se a base de dados assim:

wget -O - http://www.w3.org/TR/REC-html40/index/elements.html 2> /dev/null | tidy -asxml 2> /dev/null | xsltproc extract_elements.xsl - | sed -e ‘1,2d’ -e ‘$d’ | psql org_htmldocs

wget -O - http://www.w3.org/TR/REC-html40/index/attributes.html 2> /dev/null | tidy -asxml 2> /dev/null | xsltproc extract_attributes.xsl - | sed -e ‘1,2d’ -e ‘$d’ | psql org_htmldocs
 

E pronto, já temos dados com que brincar. Sábado sai o post sobre o setup do ambiente de desenvolvimento.

Posted by K at 23:14:01
Comments

2 Responses to “Tutorial DB_OO3/Mogul - 1. Base de dados”

  1. You are very very professional.I dream i could do such a great job as you do.

  2. You did it! …How did you do it?

Leave a Reply