• Nenhum resultado encontrado

Transformação de Documentos XML em Bases de Dados Relacionais Utilizando ASP.NET

N/A
N/A
Protected

Academic year: 2021

Share "Transformação de Documentos XML em Bases de Dados Relacionais Utilizando ASP.NET"

Copied!
9
0
0

Texto

(1)

VI Encontro de Estudantes de Informática do Estado do Tocantins – ENCOINFO 2004 – 4 e 5 de novembro de 2004 CEULP/ULBRA – Curso de Sistemas de Informação – Palmas – TO

Transformação de Documentos XML em Bases de Dados

Relacionais Utilizando ASP.NET

D’Ilton Moreira Silveira1, Fabiano Fagundes1, Deise de Brum Saccol2 1Curso de Sistemas de Informação – Centro Universitário Luterano de Palmas

(CEULP/ULBRA)

Teotônio Segurado 1501 SUL – 77054-970 – Palmas – TO – Brasil

2Curso de Sistemas de Informação – ULBRA Campus Santa Maria - BR 287 KM 252 Cx Postal: 21834 - 97020-001 - Santa Maria – RS - Brasil

{dilton, fagundes}@ulbra-to.br, deise@sigbrasil.com.br Abstract. This work aims to define a relational database schema from Lattes

Curriculum DTD. Second, it aims to develop an ASP.NET application to extract data from a XML document generated by Lattes Curriculum System and store these data in the defined database.

Resumo. Este trabalho objetiva definir um esquema de um banco de dados

relacional a partir da DTD do Currículo Lattes. Além disso, o trabalho se propõe a desenvolver uma aplicação ASP.NET para extrair dados de um documento XML gerado pelo sistema Lattes e armazenar estes dados na base de dados criada.

1. INTRODUÇÃO

O CNPq, através da Plataforma Lattes, disponibiliza na Web um sistema utilizado por pesquisadores, estudantes etc. Cada usuário preenche um formulário no sistema do Currículo Lattes com os dados de suas publicações, produções técnicas, entre outras informações, sendo que essas ficam disponíveis na Web para que interessados possam ter acesso a elas. O sistema do Currículo Lattes disponibiliza também o currículo de seus usuários em um documento Extensible Markup Language (XML) que é validado segundo uma Document Type Definition (DTD).

Esse artigo propõe montar uma base de dados relacional baseada na DTD do Currículo Lattes para a Coordenação de Pesquisa, Pós-Graduação e Extensão (COPPEX) do Centro Universitário Luterano de Palmas (CEULP); desenvolver uma aplicação em Active Server Pages.NET (ASP.NET) que faça a leitura dos documentos XML disponibilizados pelo sistema do Currículo Lattes; armazenar os dados do currículo disponível pelo documento XML na base de dados gerada a partir da sua DTD; e posteriormente gerar relatórios com estas informações. Uma vez que se tenha a base de dados para o armazenamento dos dados contidos nos documentos XML dos currículos dos professores do CEULP, é possível manter essa base de dados atualizada com os dados bibliográficos dos mesmos, a qual servirá para gerar relatórios com fins específicos da COPPEX, além de disponibilizar esses dados para consultas externas.

(2)

VI Encontro de Estudantes de Informática do Estado do Tocantins – ENCOINFO 2004 – 4 e 5 de novembro de 2004 CEULP/ULBRA – Curso de Sistemas de Informação – Palmas – TO

2. EXTENSIBLE MARKUP LANGUAGE (XML)

XML é uma linguagem de marcação que possui três componentes caracterizados, sendo estrutura, conteúdo e apresentação. Essa divisão facilita a construção e manipulação dos documentos. A DTD define uma estrutura para documentos XML, a seqüência dos elementos, e os valores de cada atributo relacionado ao elemento, especificando os atributos que pertencem a um elemento e os valores que eles podem suportar, além de determinar se um elemento é opcional, obrigatório, multivalorado, elemento raiz ou elemento folha (ANDERSON 2001).

3. PLATAFORMA LATTES

A DTD do Currículo Lattes está dividida em cinco partes: dados gerais, produção bibliográfica, produção técnica, outra produção e dados complementares. A figura 1 mostra uma parte da DTD, referente a produções bibliográficas:

<!ELEMENT PRODUCAO-BIBLIOGRAFICA (TRABALHOS-EM-EVENTOS?, ARTIGOS-PUBLICADOS?,LIVROS-E-CAPITULOS?,

TEXTOS-EM-JORNAIS-OU-REVISTAS?,DEMAIS-TIPOS-DE-PRODUCAO-BIBLIOGRAFICA?)> <!ELEMENT TRABALHOS-EM-EVENTOS (TRABALHO-EM-EVENTOS+)>

<!ATTLIST TRABALHO-EM-EVENTOS

SEQUENCIA-PRODUCAO CDATA #REQUIRED>

<!ELEMENT TRABALHO-EM-EVENTOS(DADOS-BASICOS-DO-TRABALHO, DETALHAMENTO-DO-TRABALHO, AUTORES*, PALAVRAS-CHAVE?, AREAS-DO-CONHECIMENTO?, SETORES-DE-ATIVIDADE?, INFORMACOES-ADICIONAIS?)>

<!ELEMENT DADOS-BASICOS-DO-TRABALHO EMPTY> <!ATTLIST DADOS-BASICOS-DO-TRABALHO

NATUREZA (COMPLETO | RESUMO) #REQUIRED TITULO-DO-TRABALHO CDATA #IMPLIED ANO-DO-TRABALHO CDATA #IMPLIED PAIS-DO-EVENTO CDATA #IMPLIED IDIOMA CDATA #IMPLIED

MEIO-DE-DIVULGACAO (IMPRESSO | MEIO_MAGNETICO | MEIO_DIGITAL | FILME | HIPERTEXTO | OUTRO | VARIOS | NAO_INFORMADO) "NAO_INFORMADO"

HOME-PAGE-DO-TRABALHO CDATA #IMPLIED FLAG-RELEVANCIA (SIM | NAO) "NAO"

Figura 1 – Parte da DTD do Currículo Lattes (STELA, 2002)

Essa DTD é utilizada pelo Currículo Lattes para validar o arquivo XML gerado pelo software de cadastro do Currículo Lattes e está disponível em (STELA, 2002).

4. EXTENSIBLE MARKUP LANGUAGE (XML) E BASE DE DADOS

RELACIONAL

Definir um modelo relacional capaz de suportar a extração de dados de um documento XML é uma tarefa que requer trabalho e atenção. Para isso, devem ser considerados todos os elementos do documento, além da sua cardinalidade. Na próxima subseção tem-se um exemplo de como se pode definir um modelo relacional para um documento XML.

4.1. Extrair dados XML para uma base de dados relacional

O que pode ser feito é basear-se em uma DTD, sendo que através da DTD pode-se prever o que existirá em um documento XML e o que o documento pode não conter. A

(3)

VI Encontro de Estudantes de Informática do Estado do Tocantins – ENCOINFO 2004 – 4 e 5 de novembro de 2004 CEULP/ULBRA – Curso de Sistemas de Informação – Palmas – TO

figura 2 mostra uma DTD que define a estrutura de uma mensagem de e-mail. A partir dessa DTD é definido um modelo relacional capaz de suportar documentos XML validados segundo essa DTD. A figura 3 mostra as tabelas geradas.

Para garantir que todos os dados do documento XML sejam inseridos nas tabelas do modelo relacional, incluindo os valores que se repetem no documento, as tabelas foram criadas de forma que cada elemento que contém elementos filhos e os elementos opcionais e multivalorados fossem transformados em tabelas. Na definição do relacionamento foi levado em conta a cardinalidade definida na DTD e os elementos que continham outros elementos.

<!ElEMENTO msg(de,para,cc*,cco*, assunto?,conteúdo?,anexo*)>

<!ElEMENTO de (mail)>

<!ElEMENTO mail (usuario,dominio)> <!ElEMENTO usuario (#PCDATA)> <!ElEMENTO dominio (#PCDATA)> <!ElEMENTO para (mail+)> <!ElEMENTO cc (mail+)> <!ElEMENTO cco (mail+)>

<!ElEMENTO assunto (#PCDATA)> <!ElEMENTO conteudo (#PCDATA)> <!ElEMENTO anexo (#PCDATA)>

Figura 2 – DTD de uma mensagem de e-mail

Tb_msg(id,assunto,conteudo) Tb_anexo(id,idMsg,anexo) Tb_mail(id, usuario, dominio) Tb_de(id,idMail,idMsg)

Tb_para(idDE,idMail) Tb_cc(idDE,idMail) Tb_cco(idDE,idMail)

Figura 3 – Tabelas geradas a partir do DTD da figura 2

Notação: na representação do modelo relacional as chaves primárias estão definidas em

negrito e sublinhadas; as chaves primárias e estrangeiras estão em negrito, sublinhadas e em itálico; as chaves estrangeiras estão em itálico.

5. DESENVOLVIMENTO

Para o desenvolvimento do trabalho foi montada uma base de dados relacional com a parte do DTD que diz respeito a trabalhos em eventos e implementada uma aplicação que faz a leitura dessa parte do documento XML e armazena-o na base de dados.

5.1. Definição da base de dados relacional

Com base na DTD do Currículo Lattes, foi definida uma base de dados relacional capaz de suportar os dados contidos no documento XML. Na figura 4 tem-se a parte do DTD do Currículo Lattes que diz respeito as áreas de conhecimento. Para definir o modelo relacional para áreas do conhecimento foram considerados os seguintes critérios: uma grande área pode ter várias áreas do conhecimento; uma área do conhecimento pode ter várias sub-áreas; e uma sub-área pode ter várias especialidades. A figura 5 mostra como ficaram as tabelas de áreas do conhecimento.

(4)

VI Encontro de Estudantes de Informática do Estado do Tocantins – ENCOINFO 2004 – 4 e 5 de novembro de 2004 CEULP/ULBRA – Curso de Sistemas de Informação – Palmas – TO

<!ELEMENT AREAS-DO-CONHECIMENTO (AREA-DO-CONHECIMENTO-1?,AREA-DO-CONHECIMENTO-2?, AREA-DO-CONHECIMENTO-3?)>

<!ELEMENT AREA-DO-CONHECIMENTO-1 EMPTY>

<!ATTLIST AREA-DO-CONHECIMENTO-1 NOME-GRANDE-AREA-DO-CONHECIMENTO (OUTROS | LINGUISTICA_LETRAS_E_ARTES|CIENCIAS_HUMANAS

|CIENCIAS_SOCIAIS_APLICADAS|CIENCIAS_AGRARIAS|CIENCIAS_DA_SAUDE |ENGENHARIAS|CIENCIAS_BIOLOGICAS|CIENCIAS_EXATAS_E_DA_TERRA) #REQUIRED NOME-DA-AREA-DO-CONHECIMENTO CDATA #IMPLIED

NOME-DA-SUB-AREA-DO-CONHECIMENTO CDATA #IMPLIED NOME-DA-ESPECIALIDADE CDATA #IMPLIED>

Figura 4 – Parte do DTD do Currículo Lattes que diz respeito a áreas de conhecimento

Tb_grande_area(id,nome )

Tb_area(id,id_grande_area,nome) Tb_sub_area(id,id_area,nome)

Tb_especialidade(id,id_sub_area,nome)

Figura 5 – Tabelas de áreas do conhecimento A figura 6 mostra uma parte da tabelas geradas para trabalhos em eventos.

Tb_detalhamento_do_trabalho_em_eventos(id,cidade_do_evento, classificacao_do_evento,nome_do_evento,ano_de_realizacao, Titulo_dos_anais_ou_proceedings,volume,fascículo,serie, pagina_inicial,pagina_final,isbn,nome_da_editora,cidade_da_editora) Tb_usuario(id,nome) Tb_producao_bibliografica_trabalho_em_eventos(id_currículo, id_trabalho_em_eventos) Tb_curriculo(id,id_usuario) Tb_trabalho_em_eventos(id,id_dados_basicos_do_trabalho,id_detalhamento ,id_area_conhecimento_1,id_área_conhecimento_2,id_área_conhecimento_3 ,informacoes_adicionais) Tb_autores_trabalho_em_eventos(id_autor,id_trabalho_em_eventos, ordem_de_autoria) Tb_sub_area(id,id_area,nome)

Figura 6 – Parte das tabelas geradas a partir da DTD da figura 1 (parte referente a trabalhos em eventos do Currículo Lattes)

5.2. Implementação

As ferramentas de desenvolvimento utilizadas foram o Macromedia Dreamweaver MX e o SQL Server2000. Foi utilizado a plataforma Microsoft .NET Framework SDK, para dar suporte as linguagens de programação utilizadas que foram VisualBasic.NET (VB.NET) e Active Server Pages.NET (ASP.NET). Também foi utilizado a API DOM (Document Object Model). A implementação faz a leitura do documento XML gerado pelo sistema do Currículo Lattes, pega os dados referentes a trabalho em eventos e armazena-os em uma base de dados. Abaixo serão comentadas algumas partes do desenvolvimento da implementação.

(5)

VI Encontro de Estudantes de Informática do Estado do Tocantins – ENCOINFO 2004 – 4 e 5 de novembro de 2004 CEULP/ULBRA – Curso de Sistemas de Informação – Palmas – TO

5.2.1. Carregando o documento XML

Para ser possível fazer a leitura do documento XML, tem-se que recuperar os dados do arquivo XML. Para isso foi utilizada a classe XMLDocument() que cria um caminho para navegação do documento XML. Ao se carregar um documento XML com o

XMLDocument(), e sendo preciso utilizá-lo outras vezes, não há necessidade de carregar o arquivo novamente.

Após o documento estar carregado ele pode ser acessado pelas funções membro da classe XMLDocument() e por outras classes contidas no Namespace System.Xml, como por exemplo, XMLElement. Com o documento carregado usa-se o objeto raiz do tipo XMLElement. Esse objeto recebe todo o documento XML carregado pela classe XMLDocument() através da linha de código

doc.DocumentElement. Em seguida chama-se a função

buscarElementos(XMLElement), passando o primeiro filho da XML, através de

raiz.FirstChild. A propriedade FirstChild da classe XMLElement faz o elemento apontar para o primeiro filho. No tópico abaixo tem-se uma abordagem sobre a função que faz a busca de elementos no documento XML.

5.2.2. Função buscarElementos(XMLElement,id_curriculo)

Essa função percorre o documento XML em busca de um elemento. No caso em questão o elemento procurado é o elemento PRODUCAO-BIBLIOGRAFICA, sendo que nesse elemento encontra-se o elemento TRABALHOS-EM-EVENTOS, que esta sendo analisado nesse trabalho.

function buscarElementos(node as XMLElement, id_curriculo as Integer)

while not IsNothing(node) Select Case node.name

case "PRODUCAO-BIBLIOGRAFICA":

inserirProducaoBibliografica(node.FirstChild, id_curriculo as Integer)

end select

node = node.NextSibling end while end function

Figura 7 – Função buscarElementos(XMLElement,id_curriculo)

A função recebe um XMLElement e com a utilização da estrutura de repetição

while o documento é percorrido em busca de um elemento. Cada vez que um elemento é encontrado verifica-se que elemento é esse com a estrutura condicional

Select Case, se o elemento for PRODUCAO-BIBLIOGRAFICA chama-se a função

inserirProducaoBibliografica(node.FirstChild, id_curriculo as Integer) passando o primeiro filho do elemento. Caso não seja o elemento procurado passa-se para o próximo elemento através da linha de código node = node.NextSibling. A propriedade NextSibling da classe XMLElement vai para o próximo elemento. No tópico abaixo é apresentada uma abordagem sobre a função inserirProducaoBibliografica(XMLNode,id_curriculo).

(6)

VI Encontro de Estudantes de Informática do Estado do Tocantins – ENCOINFO 2004 – 4 e 5 de novembro de 2004 CEULP/ULBRA – Curso de Sistemas de Informação – Palmas – TO

5.2.4. Procedimento inserirDadosEventos(XMLNode,id_curriculo).

O elemento TRABALHOS-EM-EVENTOS pode não conter filhos como também pode conter vários filhos e para fazer a leitura desse elemento e inserir os dados encontrados na base de dados definida anteriormente é utilizado o procedimento

inserirDadosEventos(XMLNode,id_curriculo).

sub inserirDadosEventos (node as XMLNode, id_currículo as Integer)

while not IsNothing(node)

Dim no_trab_eventos as XMLNode

no_trab_eventos = node.FirstChild ... while not IsNothing(no_trab_eventos)

Select Case no_trab_eventos.name

case "DADOS-BASICOS-DO-TRABALHO": ...

case "DETALHAMENTO-DO-TRABALHO": ... end select

no_trab_eventos=no_trab_eventos.NextSibling end while ...

end while end sub

Figura 8 – Partes do código do procedimento

inserirDadosEventos(XMLNode,id_curriculo)

Primeiro o procedimento através de uma estrutura de repetição While

(while not IsNothing(node)<estrutura>

node=node.NextSibling) percorre todos os filhos do elemento passado por parâmetro enquanto existir um elemento filho. Dentro dessa estrutura de repetição é declarado um objeto do tipo XMLNode (Dim no_trab_eventos as XMLNode). Esse objeto recebe o primeiro filho do elemento inicializado no while. Ainda no

primeiro while existe um outro while (while not

IsNothing(no_trab_eventos)<estrutura>no_trab_eventos=no_tra b_eventos.NextSibling) que percorre todos os elementos netos do elemento atual do primeiro while. Para cada elemento neto encontrado os seus atributos são armazenados na base de dados. Abaixo são apresentados alguns exemplos de como ocorre a inserção da base de dados.

5.2.4.1. Inserir autores

Quando no procedimento inserirDadosEventos(XMLNode,id_curriculo) é encontrado um elemento AUTORES ele passa a executar o que está dentro do case "AUTORES":, ou seja, insere os dados de autores na tabela Tb_autores caso eles ainda não existam e armazena o identificador do autor em um array e a ordem de autoria em outro array para uma posterior inserção na base de dados.

A figura 9 mostra uma parte do código que insere os dados de autores na base de dados. Essa parte do código inicia com um objeto atributos do tipo

XmlNamedNodeMap (Dim atributos as XmlNamedNodeMap). Esse objeto recebe uma lista de atributos de um elemento. O objeto atributos recebe a lista dos atributos contidos no elemento AUTORES através da linha de código

(7)

VI Encontro de Estudantes de Informática do Estado do Tocantins – ENCOINFO 2004 – 4 e 5 de novembro de 2004 CEULP/ULBRA – Curso de Sistemas de Informação – Palmas – TO

autor já existe na base de dados, caso ele já exista pega-se o seu identificador e o atribui a variável id_autor, caso ele ainda não esteja na base atribui-se 0 (zero) a variável

id_atributo o qual servirá para identificar que o autor tem que ser cadastrado posteriormente.

case "AUTORES":

atributos = no_trab_eventos.Attributes Dim nome as String

Dim ordem_autoria as String

nome = Server.HTMLEncode(atributos.Item(0).value) nome = Replace(nome, "'", "''")

ordem_autoria=atributos.Item(2).value ObjConn.Open()

str_consulta= "SELECT id FROM tb_autor WHERE nome_completo= '"& nome &"'"

objComd.CommandText= str_consulta consulta = objComd.ExecuteReader() While consulta.read()

id_autor =consulta.getInt32(0) end while consulta.Close()

if (id_autor = 0) then id_autor= 0 end if objConn.Close()...

Figura 9– Parte do código do procedimento

inserirDadosEventos(XMLNode,id_curriculo)- Case AUTORES parte 1 Como pode ser visto na figura 10, se o id_autor for igual a 0 (zero) abre-se uma conexão com a baabre-se de dados e inicia-abre-se uma transação (para garantir que vai estar sendo pego o identificador do autor que esta sendo inserido na base de dados).

A conexão é aberta com a linha de código ObjConn.Open() e a transação é inicializada com objTrans=ObjConn.BeginTransaction(),

objComd.Connection=objConn e objComd.Transaction=objTrans. Após a conexão aberta e a transação inicializada executa-se uma consulta sql para retornar o último identificador da tabela tb_autor e insere o autor na base de dados. Se o id_autor for diferente de 0(zero) significa que o autor já esta cadastrado na base de dados, então adiciona-se id_autor a um array de autores

(array_autores(pos_autor_autoria)=id_autor) e também insere-se a ordem de autoria no array array_ordem_autoria(pos_autor_autoria) = ordem_autoria. Esses valores serão armazenados na base de dados posteriormente.

...if id_autor = 0 then ObjConn.Open()

objTrans = ObjConn.BeginTransaction() objComd.Connection = objConn

objComd.Transaction = objTrans

Try str_consulta= "SELECT MAX(id) FROM tb_autor" objComd.CommandText= str_consulta

consulta = objComd.ExecuteReader()

while consulta.read() id_max=consulta.getInt32(0)end while consulta.Close()

if (id_max = 0) then id_max= 0 end if End Try else array_autores(pos_autor_autoria) = id_autor array_ordem_autoria(pos_autor_autoria)= ordem_autoria pos_autor_autoria = pos_autor_autoria +1 id_autor = 0

(8)

VI Encontro de Estudantes de Informática do Estado do Tocantins – ENCOINFO 2004 – 4 e 5 de novembro de 2004 CEULP/ULBRA – Curso de Sistemas de Informação – Palmas – TO

end if ...

Figura 10 – Parte do código do procedimento

inserirDadosEventos(XMLNode,id_curriculo)- Case AUTORES parte 2 A figura 11 mostra a parte do código que insere um novo autor na base de dados. Após ter retornado o identificador máximo da tabela Tb_autor executa-se uma rotina SQL de inserção (INSERT) inserindo o novo autor na base de dados.

...if id_autor = 0 then ObjConn.Open()

objTrans = ObjConn.BeginTransaction() objComd.Connection = objConn

objComd.Transaction = objTrans Try ...

Dim str_autor as String

str_autor = "INSERT INTO tb_autor (nome_completo, nome_para_citacao) " _

& "VALUES ('"& atributos.Item(0).value &"','"& atributos.Item(1).value &"')"

objComd.CommandText = str_autor objComd.ExecuteNonQuery()... End Try ...

end if ...

Figura 11 – Parte do código do procedimento inserirDadosEventos(XMLNode)- Case AUTORES parte 3

5.2.4.2. Resultado de uma consulta de trabalho pelo currículo

A figura 13 é um exemplo dos tipos de relatório que podem ser gerados com os dados cadastrados na base de dados. Nesse caso é feita uma busca pelo currículo de uma pessoa e como resultado têm-se os dados básicos do trabalho como: título; natureza; ano, autores como: nome do autor; nome para citação; ordem de autoria e dentre outros.

(9)

VI Encontro de Estudantes de Informática do Estado do Tocantins – ENCOINFO 2004 – 4 e 5 de novembro de 2004 CEULP/ULBRA – Curso de Sistemas de Informação – Palmas – TO

Figura 13 – Resultado de uma consulta de trabalho por currículo

6. CONSIDERAÇÕES FINAIS

A base de dados definida com base na DTD do currículo LATTES se apresentou de forma a suporta os dados contidos no currículo dos pesquisadores referentes a trabalhos em eventos, apresentou uma boa performance e possibilitou o fornecimento de relatórios para a COPPEX. Com essa base de dados sendo alimentada freqüentemente a COPPEX terá a possibilidade de analisar o desempenho dos pesquisadores da instituição quanto a publicação de trabalhos. Com a intenção de possíveis tomadas de decisões.

O ASP.NET através dos componentes da API DOM possibilitou fazer a leitura do documento XML e por meio da linguagem SQL foi possível armazenar os dados obtidos no documento XML na base de dados definida no trabalho. O principal problema encontrado no desenvolvimento do trabalho foi que, devido à estrutura do DTD do Currículo Lattes ser extensa a aplicação em ASP.NET ficou muito grande e o seu processamento se tornou lento. Como trabalhos futuros propõe-se estudar outras formas e ferramentas que façam a leitura dos documentos XML de maneira que o seu processamento se torne mais rápido. Propõe-se também estudar outras propriedades da API DOM para ASP.NET, como por exemplo, XMLTextReader para fazer a leitura de documentos XML.

7. REFERÊNCIAS

(ANDERSON, 2001) ANDERSON, R. et al. Profissional XML. Rio de Janeiro, RJ: Editora Ciência Moderna LTDA., 2001.

(LATTES, 2002a) Plataforma Lattes. Disponível em <http://lattes.cnpq.br/>, 2002. Acesso em 05/06/2003

(STELA, 2002) STELA, Grupo. Plataforma Lattes – DTD. Disponível em <http://lattes.cnpq.br/lattesextrator/index.jsp?go=DOCUMENTA>, 2002 Acesso em 05/06/2003

Referências

Documentos relacionados

Vantagens. Permitem avaliar melhor as atitudes para análise das questões estruturadas;. São muito úteis como primeira questão de um determinado tema porque deixam o

Se o tendão formar um ângulo aberto para fora, estamos diante de um calcâneo valgo, e o apoio sobre ele deve ser maior do lado interno (Figura 6). Se o tendão parecer oblíquo de

Analisando a prática dos professores de Educação Física de Piracicaba, Moreira (1991) constatou que eles apresentam atitudes formais e autoritárias na relação com os alunos; vêem

Samuel Tabosa de Castro.. Dedicamos esta proposta a todas as pessoas portadoras de deficiência atendidas pelas APAEs, por acreditarmos em seu potencial de aprendizagem e

É o movimento humano com determinado significado/sentido, que por sua vez, lhe é conferido pelo contexto histórico-cultural. O movimento que é tema da educação física é o que

O objetivo desta pesquisa foi investigar o papel da Educação Física na Educação Infantil, considerando-se os objetivos gerais, objetivos específicos, os conteúdos da

98: “En- quanto não permitir o fundo de custeio dos serviços de inspeção, a designação de inspetores especializados para orientação do en- sino da Musica e dos exercícios

sem discriminação”; “...o ensino inclusivo será uma oportunidade das pessoas portadoras de necessidades especiais de mostrar suas potencialidades”; “espero que esta