ANDRÉ MESQUITA RINCON
Implementação de uma Ferramenta Gráfica para Construção de
Hiperdocumentos Educacionais Baseados em Grafos
Conceituais e sua Conversão para o Formato XML
Palmas – TO
2004
ANDRÉ MESQUITA RINCON
Implementação de uma Ferramenta Gráfica para Construção de
Hiperdocumentos Educacionais Baseados em Grafos
Conceituais e sua Conversão para o Formato XML
“Monografia apresentada como requisito parcial
da
disciplina
Pr
ática de Sistemas de
Informa
ção II (TCC) do curso d
e Sistemas de
Informa
ção, sob orientação do Prof°. M.Sc.
Fabiano Fagundes
”
Palmas – TO
2004
ANDRÉ MESQUITA RINCON
Implementação de uma Ferramenta Gráfica para Construção de
Hiperdocumentos Educacionais Baseados em Grafos
Conceituais e sua Conversão para o Formato XML
“Monografia apresentada como requisito parcial
da
disciplina
Pr
ática de Sistemas de
Informa
ção II (TCC) do curso de Sistemas de
Informa
ção, sob orientação do Prof°. M.Sc.
Fabiano Fagundes
”
Aprovado em dezembro de 2004
BANCA EXAMINADORA
_______________________________________________
Prof. M.Sc. Fabiano Fagundes
Centro Universitário Luterano de Palmas
_______________________________________________
Prof. Jackson Gomes de Souza
Centro Universitário Luterano de Palmas
_______________________________________________
Profª. M.Sc. Parcilene Fernandes Brito
Centro Universitário Luterano de Palmas
Palmas – TO
2004
SUMÁRIO
1 INTRODUÇÃO ... 7
2 REVISÃO DA LITERATURA ...10
2.1 GRAFOS CONCEITUAIS...10
2.1.1 Conceitos nos Grafos Conceituais...14
2.1.2 Relações nos Grafos Conceituais ...14
2.1.3 Ligações nos Grafos Conceituais ...15
2.2 XML(EXTENSIBLE MARKUP LANGUAGE)...16
2.3 FLASH...18
2.3.1 Flash e XML ...18
2.4 PROJETO COGITANT...19
2.4.1 BCGCT e CoGXML...21
3 MATERIAL E MÉTODOS...26
3.1 LOCAL E PERÍODO...26
3.2 MATERIAIS...26 3.2.1 Hardware...26 3.2.2 Software...27 3.2.3 Fontes Bibliográficas...27 3.3 METODOLOGIA...27 4 RESULTADOS E DISCUSSÃO...28 4.1 ARQUITETURA...28 4.2 MODELO XML ...29 4.3 FERRAMENTA DESENVOLVIDA...31 4.3.1 Elementos da Interface...33
4.3.2 Restrições dos Grafos Conceituais ...39
4.3.3 Exemplo de utilização da ferramenta...44
5 CONCLUSÕES FINAIS E TRABALHOS FUTUROS...47
6 REFERENCIAS BIBLIOGRÁFICAS...49
LISTA DE FIGURAS
Figura 1 – Exemplo de grafo conceitual utilizando a DF ...11
Figura 2 - Exemplo de grafo conceitual utilizando a LF ...12
Figura 3 – Exemplo de representação utilizando o CGIF ...12
Figura 4 – Exemplo de representação utilizando o KIF...13
Figura 5 – Exemplo de uma DTD e de um arquivo XML válido...17
Figura 6 – Tela da ferramenta desenvolvida usando a biblioteca do CoGITaNT...20
Figura 7 – Representação de Conceitos no BCGCT...22
Figura 8 – Representação de Relações no BCGCT ...23
Figura 9 – Representação de Conceitos no CoGXML...24
Figura 10 – Representação de Relações no CoGXML ...25
Figura 11 – Arquitetura da ferramenta...28
Figura 12 – DTD do modelo XML criado para ferramenta ...29
Figura 13 – Exemplo de Grafo na Display Form com o código XML correspondente ...30
Figura 14 – Tela da ferramenta para construção de Grafos Conceituais ...32
Figura 15 – Movieclips utilizados na ferramenta (Conceito e Relação) ...33
Figura 16 – Movieclips utilizados na ferramenta (Ligação)...34
Figura 17 – Função que desenha o corpo da Ligação...34
Figura 18 – Exemplo da estrutura das classes implementadas...35
Figura 19 – Buttons utilizados na ferramenta...35
Figura 20 – Função que instancia o objeto XML...37
Figura 21 – Elementos do tipo Input text utilizados na implementação ...38
Figura 22 – Elemento de interface do tipo listbox...39
Figura 23 – Restrições na criação de um Conceito...40
Figura 24 – Restrições na criação de uma Relação ...41
Figura 25 – Restrição na criação de uma Ligação...42
Figura 26 – Restrições na criação do formato XML ...43
Figura 27 – Exemplo de utilização da ferramenta ...45
LISTA DE ABREVIATURAS
EHDM (Hyperdocument Educational Design Method)NCM (Nested Context Model)
RMM (Relationship Management Methodology) OOHDM (Object-Oriented Hypermedia Design Model) XML (eXtensible Markup Language)
GC (Grafos Conceituais) DF (display form) LF (linear form)
CGIF (Conceptual Graph Interchange Form) KIF (Knowledge Interchange Format)
W3C (World Wide Web Consortiun)
SGML (Standard Generalized Markup Language) ISO (International Organization for Standardization) DTD (Document Type Definition)
CoGITaNT (Conceptual Graphs Integrated Tools allowing Nested Typed graphs) BCGCT (Base de Connaissances Graphes Conceptuels Textuelle)
CoGXML (Conceptual Graphs XML)
RESUMO
O presente trabalho tem a finalidade de apresentar a implementação de uma parte da ferramenta para criação de hiperdocumentos educacionais baseados em Grados Conceituais. Visto que os hiperdocumentos educacionais têm alguns requisitos diferenciados dos hiperdocumentos tradicionais e que os Grafos Conceituais permitem a representação de conhecimento de forma gráfica em um formato logicamente preciso, a ferramenta se apresenta como um auxílio na modelagem das informações que vão compor estes documentos. Dado que a modelagem dos grafos pode ocorrer de várias formas (como, por exemplo: texto ou elementos gráficos), a ferramenta pode ser utilizada para comunicação entre ser humano e sistemas computacionais ou entre os próprios sistemas computacionais através de um formato que possa ser interpretado por eles. A ferramenta, implementada em Flash, permite a modelagem gráfica, por parte do usuário, e a traduz para o formato XML (eXtensible Markup Language) para sua interpretação por sistemas computacionais.
ABSTRACT
The present work aims to present the partial implementation of a tool for creation of educational hyperdocuments based in Conceptual Graphs. Since educational hyperdocuments have some requirements different from those of traditional hyperdocuments and that Conceptual Graphs allow the visual representation of knowledge in a necessary logical format, the tool is an assistant in the modeling of information that compose these documents. The modeling of graphs can be made of many forms (for example: text or graphical elements), thus the tool can be used to communication between human and machines or between machines and machines through an interpretable format. The tool, implemented in Flash, allows the graphic modeling, made by the user, and translates it to XML for its interpretation by computational systems.
1 INTRODUÇÃO
A Internet trouxe consigo uma nova forma de navegação, representação e transmissão das informações que se dá através de textos que podem ser acessados de maneira não linear, ou seja, não possui uma forma única de leitura do seu conteúdo. Estes são chamados de hipertextos. Quando se pensa em um conjunto de textos armazenados em um único documento, tem-se, então, um hiperdocumento que, além de possibilitar a ligação para outros hiperdocumentos, permite a ligação para partes do próprio documento.
Em Díaz (1995) encontra-se que uma das novidades que se apresentam com os hiperdocumentos é a possibilidade de cada leitor navegar em um conjunto de informações de forma diferente, isso sendo feito através de âncoras para outras partes do texto dentro de um mesmo documento ou de outros documentos. Devido a isso, a autora acrescenta que aplicações que trabalham com hiperdocumentos necessitam de metodologias e ferramentas especiais que dão suporte ao desenvolvimento deste tipo de aplicações.
Os hiperdocumentos, quando utilizados no âmbito educacional, recebem a denominação de hiperdocumentos educacionais. Atualmente, alguns esforços são realizados para permitir o ensino utilizando a Internet como, por exemplo: o EHDM (Hyperdocument Educational Design Method) que consiste em um método para elaboração de hiperdocumentos educacionais; o desenvolvimento de ambientes colaborativos para ensino à distância; entre outros. Além disso, existe uma preocupação no que diz respeito à modelagem de hiperdocumentos educacionais, pois esses documentos devem levar em consideração a coerência das informações e a sobrecarga cognitiva.
“Uma das características essenciais do hipertexto é sua capacidade de ligação. O
que são essas ligações, o que elas unem, que princípios regem estas ligações são, pois, conceitos importantes para a elaboração de hiperdocumentos coerentes” (Campos, 2001). Para que um hiperdocumento seja elaborado de forma coesa, deve-se levar em
consideração a disposição do conhecimento que se deseja apresentar, bem como das ligações dentro do hiperdocumento.
A criação das ligações dentro de um hiperdocumento de forma a representar a navegação da maneira como o desenvolvedor deseja tem sido alvo de inúmeras pesquisas como, por exemplo, o NCM (Nested Context Model) (Casanova, 1991), o RMM (Relationship Management Methodology) (Isakowitz, 1995) e o OOHDM (Object-Oriented Hypermedia Design Model) (Schwabe, 1995). Algumas conclusões que essas pesquisas têm revelado indicam que ferramentas de auxílio à criação de ligações podem ser
úteis na representação das informações.
“A sobrecarga cognitiva presente em um hiperdocumento educacional diz respeito
ao esforço e concentração necessários para manter várias tarefas ao mesmo tempo” (Conklin, 1987). O ser humano tem capacidade limitada de processamento de informação e um esforço adicional para leitura, principalmente no que diz respeito à navegação entre as informações, pode reduzir os recursos disponíveis para a compreensão.
Baseado na necessidade de uma ferramenta para criação de ligações de forma automática para hiperdocumentos educacionais optou-se pelos Grafos Conceituais, pois permitem a representação lógica de proposições, além de permitir a representação de conhecimento em um formato que seja compreendido por humanos e por sistemas computacionais.
A ferramenta será implementada em Macromedia Flash, pois é uma tecnologia que permite a implementação de elementos de interatividade com o usuário. Além disso, o Flash possui uma linguagem chamada ActionScript que pode ser utilizada para acesso aos objetos como por exemplo: movieClips (clipes de filme), buttons (botões), input text (caixas de texto), entre outros. Além disso, nessa linguagem, existe um objeto que permite a manipulação de documentos XML (eXtensible Markup Language).
O texto está dividido em: revisão de literatura (na seção 2), onde são apresentados os estudos teóricos sobre Grafos Conceituais; a linguagem XML, a tecnologia Flash e o projeto CoGITaNT (Conceptual Graphs Integrated Tools allowing Nested Typed graphs); a seção 3 corresponde aos materiais e métodos utilizados, em outras palavras, apresenta elementos de hardwares, softwares, materiais bibliográficos e metodologias utilizadas neste trabalho; os resultados e discussões (apresentados na seção 4), tem como finalidade apresentar a DTD (Document Type Definition) que é utilizada para validação dos Grafos Conceituais transformados para o formato XML, bem como detalhes da implementação da
ferramenta em Flash; na seção 5 são apresentadas as conclusões obtidas com a realização deste, além de algumas sugestões de trabalhos futuros.
2 REVISÃO DA LITERATURA
Para a implementação da ferramenta proposta, realizou-se um estudo sobre uma linguagem para criação do ambiente gráfico, do conhecimento do domínio de Grafos Conceituais e da linguagem de marcação que será utilizada para transformação do grafo construído em um arquivo que possa ser intercambiado e interpretado por sistemas computacionais. Nesta seção serão apresentados os elementos que foram estudados para implementação de uma ferramenta com as características citadas.
2.1 Grafos Conceituais
O Grafo Conceitual (GC) consiste em uma forma de representação do conhecimento proposta por Sowa (2001a) que permite a representação lógica de proposições. A ferramenta proposta neste trabalho permite a representação de proposições, através de GC, utilizando três elementos: os Conceitos, que representam entidades do mundo real; as Relações, que permitem relacionar os Conceitos; e as Ligações, que tem a finalidade de ligar os elementos. A apresentação destes elementos será mais bem detalhada nas próximas seções.
Outra característica dos Grafos Conceituais está na definição de que eles são definidos como grafos bipartidos. Tal denominação advém do fato de não serem possíveis ligações entre tipos iguais de nós (Conceitos e Relações). Em outras palavras, em um grafo conceitual válido não existirão ligações entre um Conceito e outro ou entre uma Relação e outra.
Os Grafos Conceituais podem ser classificados, segundo Sowa (2001a) em:
Vazio, em que o grafo não é composto por nenhum Conceito e nenhuma Relação, não expressando assim, nenhum significado;
Singular, que são representados apenas por um Conceito, ou seja, sem ligação com nenhuma Relação (por exemplo: o Conceito [Pessoa] sem ligação representa que existe pessoa); e
Estrela, em que uma Relação está ligada a mais de um Conceito (por exemplo: [Pessoa]->(Na)->[Cadeira]).
Para que a utilização de GC permita uma modelagem de conhecimento condizente com a realidade, Sowa (2001b) apresenta três características importantes:
Grafos Conceituais são humanamente legíveis: um GC consiste na representação de um conhecimento que determinado indivíduo possui. Uma das formas de se fazer tal representação é utilizando os elementos gráficos do GC – essa representação é conhecida como display form (DF). A Figura 1, abaixo, apresenta um exemplo de grafo conceitual utilizando a DF.
Figura 1 – Exemplo de grafo conceitual utilizando a DF
Na DF, os Conceitos são representados por retângulos, as Relações por elipses e as Ligações pelas setas. No exemplo da Figura 1, acima, existem dois Conceitos (Pessoa e
Cadeira), uma Relação (Na) e duas Ligações que são representadas pelas setas (uma que
chega na relação e outra que sai da relação). A Figura acima representa o seguinte conhecimento “Pessoa Na Cadeira”. O fato de um GC permitir que um conhecimento seja representado graficamente e, posteriormente, ser interpretado por computador, consiste em um dos pontos que podem ser considerados como vantagem para escolha desse sistema como base da ferramenta desenvolvida.
Grafos Conceituais são computacionalmente interpretáveis: GC possui uma notação chamada de forma linear ou linear form (LF). A LF consiste na representação do conhecimento em um formato computacionalmente interpretável. No caso da proposta de Sowa (2001a), o formato interpretável é em forma de String (Texto) como o exemplo da Figura 2. No caso da ferramenta proposta, o formato interpretável será XML (melhor explicado posteriormente na seção 2.2).
Figura 2 - Exemplo de grafo conceitual utilizando a LF
Na LF, os Conceitos são representados por colchetes, as Relações por parênteses e as Ligações pelas setas montadas com os caracteres “-” seguidos de “>”. O exemplo da Figura 2 representa o mesmo conhecimento da Figura 1 (“Pessoa Na Cadeira”).
Grafos conceituais permitem a representação de significado em um formato
logicamente preciso: quando se cria um GC para representação do conhecimento através
de seus elementos, utilizam-se formas que permitem essa representação em um formato logicamente preciso. Entre alguns desses formatos, encontram-se o conceptual graph interchange form (CGIF) e Knowledge Interchange Format (KIF) que são apresentados por Sowa (2001b).
Em Sowa (2001b), encontra-se que a forma gráfica e a forma linear são para comunicação entre humanos ou entre humanos e máquinas, já o CGIF e o KIF podem ser utilizados permitir o intercâmbio do GC entre as próprias máquinas. Para representar a sintaxe do CGIF são usados os conference labels. Considera-se como um conference label cada nó do GC, por exemplo [Pessoa: *x] como exemplificado na Figura 3. A união dos conference labels, forma a sintaxe do CGIF.
Figura 3 – Exemplo de representação utilizando o CGIF
A Figura 3 apresenta um exemplo das duas possíveis formas de se representar os Grafos Conceituais utilizando o CGIF segundo Sowa (2001b). Na primeira forma apresentada, chamada de forma completa, encontram-se outros dois elementos: os defining labels representados por “*x” e “*y” que recebem a denominação dos conceitos existentes no grafo; e os bound labels representados por “?x” e “?y” que são os Conceitos das extremidades de uma Relação. Na segunda forma, chamada de forma simplificada, o número de conference labels pode ser diminuído atribuindo os valores diretamente sem a necessidade dos bound e defining labels.
[Pessoa] -> (Na) -> [Cadeira]
Forma Completa:
[Pessoa: *x] [Cadeira: *y] (Na ?x ?y)
Forma simplificada:
(Na [Pessoa] [Cadeira])
Outra forma de permitir o intercâmbio do GC entre as próprias máquinas é a lógica do Knowledge Interchange Format que, segundo Sowa (2001b), possui sua forma baseada no cálculo de predicados. Na Figura 4 é apresentado um exemplo.
Figura 4 – Exemplo de representação utilizando o KIF
Na Figura 4 é apresentada a sintaxe KIF de representação de Grafos Conceituais que foi baseada no cálculo de predicados. Na forma KIF, primeiramente utiliza-se a palavra reservada exists para representar que existe o conceito Pessoa que é “guardado” na variável “x”, existe o conceito Cadeira que é “guardado” na variável “y” e existe a Relação Na que possui os conceitos atribuídos a x e y como extremidades.
Ainda sobre os formatos de representação de Grafos Conceituas para comunicação entre máquinas, propostos por Sowa (2001a), vale comentar que apresentam complexidades maiores que as apresentadas nos exemplos acima. Tal complexidade refere-se à quantidade de Conceitos, Relações, Ligações e outros elementos presentes no modelo completo dos Grafos Conceituais como, por exemplo, negações, quantificadores existenciais, definição de proposições, definição de situações como pode ser encontrado em Sowa (2001c). No entanto, a ferramenta proposta tem a finalidade de permitir a criação e tradução de Grafos Conceituais no modelo básico (utilizando apenas Conceitos, Relações e Ligações).
A construção de uma ferramenta que atenda a todas as restrições existentes no modelo de Grafos Conceituais será apresentada neste trabalho como um trabalho futuro na seção 5, visto que para a implementação dessa ferramenta é proposto um modelo XML simplificado (através de uma DTD), apresentando algumas restrições existentes no modelo GC. Nas próximas seções serão apresentados maiores detalhes sobre o modelo XML criado e sobre o estudo de outros modelos XML existentes. Além disso, Conceitos, Relações e suas Ligações serão mais bem explicados para permitir uma melhor compreensão da função deles dentro dos Grafos Conceituais.
2.1.1 Conceitos nos Grafos Conceituais
O Conceito consiste em um dos elementos mais importantes dentro do Grafo Conceitual. Um exemplo dessa importância está na possibilidade de existir um grafo apenas com um Conceito. Geralmente quando se recorre a um sistema de GC o usuário está buscando uma forma de representar as ligações existentes no conhecimento que ele possui sobre vários conceitos do mundo real.
Um Conceito tem a finalidade de representar alguma entidade do mundo real, como nos exemplos citados anteriormente, nos quais era necessário representar um conhecimento sobre as “Pessoas nas Cadeiras”. Identificou-se que existem dois Conceitos “Pessoas” e
“Cadeiras”. Para outro conhecimento bastante semelhante ao anterior, “Pessoas estão
sentadas nas Cadeiras”, podem-se identificar três conceitos, que são “Pessoas”, “Sentadas” e “Cadeiras”. O que se quer demonstrar é que um Conceito pode ser qualquer “coisa” do mundo real e para definir se ele fará parte ou não de um Grafo Conceitual, deve-se analisar o domínio e abstrair qual a relevância de tal entidade.
O Conceito é dividido em Tipo do Conceito e Referente do Conceito. Essa divisão existe para permitir que um Conceito mais genérico possa ser mais especificado. Por exemplo: constatou-se que um GC possui a necessidade de dois Conceitos do tipo
“Pessoa”. E é necessário que seja especificado que uma pessoa é “Canhota” e a outra é “Destra”. Assim, pode-se dizer que o tipo do conceito é “Pessoa” e os referentes são: “Canhota” e “Destra”. Então, os Conceitos serão chamados de [Pessoa: Canhota] e
[Pessoa: Destra]. Nota-se que Canhota e Destra são tipos de pessoas que possuem características diferentes.
2.1.2 Relações nos Grafos Conceituais
As Relações são outro tipo de entidade existente nos Grafos Conceituais. Como as restrições dos GC não permitem a ligação entre Conceitos, as Relações apresentam-se como entidades importantes na representação do relacionamento entre Conceitos. As Relações possuem três características importantes: Tipo da Relação, Valência da Relação e Assinatura da Relação.
O Tipo da Relação consiste no nome que é dado à Relação. Uma boa prática de criação de GC, utilizada pelos usuários do sistema de Grafos Conceituais, consiste em
atribuir ao Tipo da Relação um nome que possa representar semântica para a Relação à qual ele foi atribuído. Por exemplo, para o seguinte conhecimento, “Pessoa na Cadeira”, não seria semanticamente adequado criar o seguinte Grafo: [Pessoa] -> (Atributo) -> [Cadeira], pois “atributo” pode não representar adequadamente o conhecimento que se propõe que é o fato da Pessoa se localizar em uma Cadeira.
A Valência da Relação corresponde ao número de Conceitos que se ligam a ela. A valência se torna um elemento importante na medida em que, através dela, não se permite criar Relações com Tipos iguais e Valências diferentes, ou seja, se uma Relação com o Tipo “Atributo” e com Valência “dois” foi criada dentro do GC, sempre que outra Relação com este mesmo Tipo for criada, a Valência deverá possuir o mesmo valor. A criação de uma Relação com Tipos iguais e valências diferentes poderia acarretar uma maior dificuldade no entendimento de uma determinada Relação dentro do Grafo Conceitual. Vale salientar que, para cada GC, o número de valência de uma Relação deverá ser sempre constante para aquele GC. As valências recebem nomenclaturas especiais de acordo com seu valor: para o valor um, a valência é chamada de “monoadic”; para dois, a valência é chamada de “dyadic”; para o valor três, a valência é chamada de “triadic”; e para números maiores que quatro a denominação é “n-adic” (por exemplo: “quatroadic”, “cincoadic”, e assim por diante).
A Assinatura da Relação armazena os tipos dos Conceitos os quais ela está ligada. Ela consiste em uma tupla composta pelos tipos dos Conceitos que estão ligados com a Relação. Este elemento pode ser importante para guardar a ordem de apresentação dos conceitos na interpretação do modelo por máquina. Não foi utilizada na implementação da ferramenta, pois essa restrição não foi inserida no modelo XML criado. (maiores detalhes na seção 2.2).
2.1.3 Ligações nos Grafos Conceituais
As Ligações nos Grafos Conceituais têm a finalidade de representar a semântica existente entre um Conceito e uma Relação. Como foi apresentado anteriormente, quando se deseja criar um GC, devem-se identificar quais Conceitos e Relações farão parte dele. Por exemplo, para representar o conhecimento “Pessoa é Inteligente”, identificaram-se dois Conceitos (Pessoa e Inteligente) e uma Relação que pode ser denominada (Atributo). Assim, tem-se o Grafo [Pessoa] (Atributo) [inteligente]. No entanto, esse GC ainda não
está completo, pois não existe a forma de leitura que liga os elementos. Para permitir essa forma de leitura é que existem as Ligações.
Nota-se que o exemplo acima, quando adicionadas suas Ligações, pode possuir mais de uma forma de leitura. Por exemplo, uma forma correta de construção do Grafo Conceitual acima, segundo a especificação de Sowa (2001a), seria [Pessoa] > (Atributo) -> [Inteligente]. As Ligações para este caso estão da seguinte maneira: uma chegando na Relação (Atributo) proveniente do Conceito [Pessoa] e outra partindo da Relação (Atributo) com destino ao Conceito [Inteligente]. A leitura correspondente é “Pessoa possui um Atributo que é Inteligente”. Agora será apresentado o seguinte Grafo Conceitual: [Inteligente] -> (Atributo) -> [Pessoa]. Nota-se que o GC ainda representa o mesmo conhecimento que o anterior, no entanto, a forma de leitura das Ligações sofreu uma pequena alteração: “Inteligente é um atributo que pertence à Pessoa”.
Todos os elementos que foram apresentados nessa seção são fundamentais para construção de um Grafo Conceitual. Estes elementos estão presentes na ferramenta proposta. A ferramenta permite a criação de um Grafo Conceitual utilizando a display form e depois a transforma em um formato interpretável pela máquina. Neste caso, um arquivo XML. Na próxima seção será apresentada a linguagem XML.
2.2 XML (eXtensible Markup Language)
O XML foi desenvolvido pela W3C (World Wide Web Consortiun) e, segundo Anderson (2001), consiste em uma linguagem de marcação que permite a criação de marcações específicas para cada domínio. A estrutura de um documento XML é criada em um formato de árvore, em que um documento se inicia através de um elemento raiz que, de acordo com a necessidade, pode ter elementos filhos vinculados a ele, mantendo assim, uma hierarquia. O XML tem como base o modelo do SGML (Standard Generalized Markup Language) que, em 1986, era o padrão de troca e armazenamento de dados pela ISO (International Organization for Standardization).
O XML foi utilizado na implementação da ferramenta por apresentar algumas características que foram importantes na criação do modelo:
Permite a criação de tags (marcações) específicas para cada domínio, no caso deste trabalho, possibilitou a criação de marcações específicas para o domínio de Grafos Conceituais;
Possibilita armazenar os dados sem a preocupação de como esses dados serão apresentados (para isso podem-se utilizar folhas de estilo ou objetos próprios para manipulação de XML, existentes em algumas linguagens programação); e, por fim,
Permite a criação de algumas restrições que os arquivos XML devem possuir através do modelo definido em uma DTD (Document Type Definition).
Para que um sistema computacional consiga interpretar e validar dados descritos em um arquivo XML é necessário que exista uma gramática que permita essa validação. Para Anderson (2001), uma forma de se criar essa gramática está na DTD. Em outras palavras, uma DTD pode ser utilizada para modelar um domínio e suas restrições. Na Figura 5 serão apresentados uma DTD e um arquivo XML válido.
1: <?xml version="1.0"?> 2: <!DOCTYPE graph [
3: <!ELEMENT graph (concept?)> 4: <!ELEMENT concept EMPTY>
5: <!ATTLIST concept idConcept ID #REQUIRED
6: typeConcept CDATA #REQUIRED
7: referring CDATA #IMPLIED>
8: ]> 9: <graph>
10: <concept idConcept="Conceito1" typeConcept="Pessoa" /> 11: </graph>
Figura 5 – Exemplo de uma DTD e de um arquivo XML válido
A Figura 5 apresenta uma parte da DTD e de um arquivo XML para o domínio de Grafos Conceituais. A linha 1 apresenta a especificação da versão XML utilizada, neste caso a versão é “1.0”. Nas linhas 2 a 8 tem-se a criação da DTD. Nesta DTD, a linha 2 traz a especificação do início da criação da DTD. A linha 3 apresenta a criação do elemento graph e, dentro dos parênteses, existe a restrição sobre a possibilidade de um grafo poder ter ou não um elemento concept. A linha 4 apresenta o elemento concept que é do tipo EMPTY (vazio). Nas linhas 5 a 7 são apresentados os atributos do elemento concept que são: idConcept do tipo identificador (ID) e obrigatório (REQUIRED); typeConcept que é composto por texto (CDATA) e também obrigatório; e, por fim, o atributo referring que também é composto por texto e é opcional (IMPLIED). Nas linhas 9 a 11 tem-se o arquivo XML em que a linha 9 apresenta o elemento raiz que inicia o arquivo. A linha 10 traz o elemento que é filho do elemento raiz e está em um nível inferior na árvore do documento. A linha 11 finaliza o arquivo XML com a marcação de fechamento do elemento raiz que foi aberto na linha 9. Nota-se que o elemento da linha 10 não necessitou de uma tag de fechamento, pois trata-se de um elemento vazio (EMPTY).
Para implementação da ferramenta, utilizou-se uma linguagem de programação que permite a manipulação de documentos XML, bem como sua validação por uma DTD. Uma linguagem que permite a criação de ambientes gráficos e a manipulação XML é o ActionScript do Flash. A próxima seção apresenta algumas características do Objeto XML disponibilizado pelo ActionScript, bem como da tecnologia Flash.
2.3 Flash
O Flash consiste em uma tecnologia para criação de clipes de filmes dinâmicos que possuem grande número de interações com o usuário. O Flash utiliza imagens vetoriais, em que as imagens são construídas através de cálculos matemáticos das formas geométricas das figuras (os vetores) (Prestes, 2003). Como resultado da utilização da descrição geométrica das figuras tem-se um redimensionamento perfeito das imagens facilitando, assim, a sua portabilidade.
Existem alguns elementos do Flash que foram utilizados neste trabalho que permitem a interação do usuário com o sistema e dinamicidade dos programas criados em Flash, entre eles: movieClips (clipes de filme) e buttons (botões). Além disso, vale apresentar outros conceitos do Flash como o palco do filme que consiste no espaço onde o clipe de filme será criado. Um clipe de filme, por sua vez, trabalha outros conceitos como scene (cena), onde cada cena pode ter várias camadas e uma camada pode possui vários níveis. Por fim, um nível é um número exclusivo que especifica o nível de profundidade no qual um filme especificado deve ser colocado.
Para controlar a interação entre o usuário e o sistema ou entre os elementos do sistema, existe a linguagem do Flash chamada ActionScript. O ActionScript é a linguagem de script do Macromedia Flash MX que permite definir o comportamento que um programa Flash terá. Através do ActionScript, os elementos inseridos no palco do filme, bem como outros objetos instanciados (como o objeto XML), podem ser acessados.
2.3.1 Flash e XML
Segundo o Manual Flash MX (2004), os métodos e as propriedades do objeto XML do Flash são usados para carregar, analisar, enviar, montar e manipular árvores de documento XML. Nessa seção serão apresentadas algumas propriedades que serão
utilizadas na implementação da ferramenta, bem como alguns métodos que irão acessar tais propriedades.
Algumas das propriedades do objeto XML que serão utilizadas:
XmlDecl: deve receber informações sobre a declaração de um documento XML (possui a seguinte sintaxe: objXML.xmlDecl = "<?xml version=\"1.0\" encoding = \"ISO-8859-1\"?>";);
DocTypeDecl: retorna informações sobre a declaração doctype do documento XML (possui a seguinte sintaxe: objXML.docTypeDecl="<!DOCTYPE Grafo SYSTEM \"grafo.dtd\">";);
Status: retorna um valor inteiro que indica o resultado da análise de um objeto XML (possui a seguinte sintaxe: S = objXML.status).
Além das propriedades, serão utilizados alguns métodos como, por exemplo:
sendAndLoad() que envia o objeto XML para uma URL passada por parâmetro e recebe o resultado do processamento. A sintaxe do método que envia e recebe o resultado do processamento e a seguinte: objXML.sendAndLoad(strURL,auxiliarXML,”POST”);.
As propriedades e os métodos do objeto XML, em conjunto com as propriedades e eventos dos elementos do Flash, servem como introdução ao estudo completo dos elementos que deverão ser utilizados para implementação da ferramenta. Na seção de resultados e discussões serão apresentadas telas da ferramenta, o formato XML que é utilizado para validar os Grafos Conceituais criados e outros métodos do ActionScript utilizados na implementação. Na próxima seção será apresentado o estudo realizado durante este trabalho. Este estudo visou conhecer iniciativas na área de desenvolvimento de softwares que fossem utilizados para interpretação de Grafos Conceituais pos sistemas computacionais. O projeto que foi estudado é denominado de projeto CoGITaNT.
2.4 Projeto CoGITaNT
O projeto CoGITaNT consiste em um projeto Francês encabeçado pela Équipe représentation de connaissances par des graphes desenvolvida dentro do LIRMM (Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier). Os membros dessa equipe criaram uma biblioteca C++ que permite o desenvolvimento de softwares baseados em Grafos Conceituais (CoGITaNT, 2001).
A biblioteca fornece mecanismos de leitura e manipulação de Grafos Conceituais através de sistemas que possuem mecanismos de processamento de Grafos Conceituais (CoGITaNT, 2001). Para leitura e validação dos grafos, a biblioteca oferece mecanismos de criação e de leitura nos formatos BCGCT (formato nativo do CoGITaNT) que significa Base de Connaissances Graphes Conceptuels Textuelle, no formato CoGXML (Conceptual Graphs XML), formato CGIF e na forma linear (CoGITaNT, 2001). O formato BCGCT será explicado na seção 4.1, juntamente com o CoGXML que consiste na representação XML do BCGCT. A ferramenta desenvolvida com essa tecnologia pode ser adquirida gratuitamente no site do projeto CoGITaNT. Um exemplo de utilização dela pode ser visualizado na Figura 6.
Figura 6 – Tela da ferramenta desenvolvida usando a biblioteca do CoGITaNT
A Figura 6 apresenta a tela da ferramenta com as várias formas de visualização e de edição que ela possibilita. Em “A” tem-se a forma de Grafos Conceituais aninhados; nessa forma são permitidas as construções de elementos dentro uns dos outros.
Exemplificando: uma possível forma de leitura do Grafo presente em “A” seria: existe um Conceito com o tipo Personne e com o Referente Pierre que é agent do Conceito
A B
C
Penser (neste caso agent é uma Relação). O Conceito Penser possui a Relação objet e esta Relação está ligada a Tableau: A. A tableau contém uma représentation que é composta por uma scène que possui um attribut ligado ao Conceito Bucolique. A scène é descrita (através do description) como sendo um Couple (representando um par ou uma dupla) composta (composant) dos seguintes Grafos: Personne que é agent do Conceito Pêcher e Personne que é agent do Conceito Dormir. O Couple está ligado à Relação dans que possui o Conceito Barque que, por sua vez, está ligado à Relação sur que possui o Conceito Lac. Em um português coloquial, o que está sendo representado é o seguinte:
“Pierre, que é uma pessoa, pensa em uma cena bucólica (fazendo referência a uma cena
simples e/ou comum) onde uma pessoa pesca e dorme em um barco sobre um lago”. Ainda sobre a Figura 6, na parte marcada pela letra “B” apresenta-se a forma linear de uma parte do conhecimento explicado acima. Uma forma de leitura seria: “Pensar possui um agente que é uma pessoa que pesca dentro de um barco”. A parte representada pela letra “C” consiste no modelo BCGCT. Por fim, a parte referente à letra “D” consiste em uma representação, na display form, do mesmo conhecimento citado na forma linear.
A interface apresentada acima permite a edição de Grafos Conceituais aninhados, além de permitir a manipulação na forma linear e utilizando o modelo BCGCT. Esses recursos estão disponíveis na ferramenta porque os desenvolvedores utilizaram todos as formas de criação de Grafos Conceituais que a biblioteca permite. Existe uma parte da ferramenta que permite a edição de Grafos Conceituais básicos na display form, assim, quando a ferramenta desenvolvida como parte desse trabalho for apresentada, será realizada também uma comparação entre elas.
Como foi citado anteriormente, existe um modelo chamado CoGXML que foi desenvolvido a partir do modelo BCGCT, na próxima seção serão apresentados os modelos: BCGCT e o CoGXML.
2.4.1 BCGCT e CoGXML
A proposta deste trabalho de se construir uma ferramenta para criação de Grafos Conceituais surgiu aliada à idéia de permitir que esses Grafos pudessem ser transformados para um formato interpretável por computador, e a forma escolhida para tal interpretação foi o modelo XML. Dentre os motivos dessa escolha tem-se a característica do XML de ser multiplataforma, permitindo que o arquivo seja transmitido para qualquer sistema
computacional. Além disso, o XML permite a construção de modelos específicos para o domínio de Grafos Conceituais e também permite a criação de algumas restrições através das DTD’s.
Após a escolha do XML, verificou-se a necessidade de encontrar algum trabalho relacionado a este tema para que fossem feitas comparações com um modelo que estivesse em funcionamento. Foi assim que se conheceu o modelo CoGXML do projeto CoGITaNT. A partir deste modelo verificou-se que ele apresentava uma quantidade de elementos maior que a necessária para construção de Grafos Conceituais básicos (como se propõe a ferramenta desenvolvida neste trabalho). A partir daí seguiu-se com um estudo aprofundado sobre o projeto citado acima e verificou-se a existência de um modelo que deu origem ao CoGXML: o BCGCT.
O BCGCT consiste em um formato textual para representação de Grafos Conceituais básicos e também para Grafos com formatos aninhados (como o exemplo da Figura 6 da seção anterior). Alguns exemplos que serão apresentados sobre essa forma de representação irão tratar da parte referente à criação de Conceitos, Relações e Ligações para permitir a comparação com o modelo XML criado para este trabalho. Na Figura 7 tem-se a representação de criação de Conceitos.
Figura 7 – Representação de Conceitos no BCGCT 1.TConSet: 2. ConceptTypes: 3. Universal; 4. Action; 5. Attribute; 6. Entity; 7. Think; 8. Sleep; 9. Fish; 10. Lake; 11. Place; 12. EndConceptTypes; 13. Order: 14. Action < Universal; 15. Attribute < Universal; 16. Entity < Universal; 17. Think < Action; 18. Sleep < Action; 19. Fish < Action; 20. Lake < Place; 21. EndOrder; 22.EndTConSet;
A Figura 7 apresenta a forma de representação dos Conceitos de um Grafo Conceitual em BCGCT. A linha 1 possui a marcação TConSet que tem por finalidade iniciar a representação dos Conceitos e a sua ordem. Na linha 2 existe a marcação ConceptTypes que apresenta o início da especificação das nomenclaturas dos Conceitos, que vai da linha 3 até a linha 11, e é encerrada na linha 12 pela marcação EndConceptTypes que finaliza a especificação das nomenclaturas. A partir da linha 13, com a marcaão Order até a linha 21, com a marcação EndOrder, é que se define a ordem dos conceitos. A ordem consiste em uma novidade apresentada por essa forma de representação. No BCGCT, o usuário não informa o Tipo do Conceito e seu Referente separadamente. O que acontece nestes casos é o seguinte: o usuário cadastra apenas os Tipos dos Conceitos (como Lake, Sleep, Action e Place) e depois define a “ordem de existência” que eles seguem (como o mecanismo de herança em Orientação a Objeto). Exemplificando, na linha 18 e 20 aparecem os Conceitos Sleep, que é considerado um tipo de Action e Lake que é considerado um tipo de Place. Para a criação das Relações de um Grafo Conceitual nesta forma de representação segue-se a mesma lógica, como pode ser visto na Figura 8.
Figura 8 – Representação de Relações no BCGCT
A Figura 8 apresenta a forma de representação das Relações de um Grafo Conceitual em BCGCT. A linha 1 possui a marcação TRelSet que tem por finalidade iniciar a representação das Relações e a sua ordem (esta marcação é finalizada na linha 9 com EndTRelSet). Na linha 2 existe a marcação que apresenta o início da especificação das nomenclaturas das Relações e dos Conceitos que ela relaciona, que vai da linha 3 até a linha 5, e é encerrada na linha 6 pela marcação que finaliza a especificação das nomenclaturas. Assim como nos Conceitos, também é possível definir a ordem entre as Relações, mas no exemplo da Figura 8 este recurso não foi utilizado, por isso a marcação
1.TRelSet: 2. RelationTypes: 3. attr{Signature:2,Entity,Attribute}; 4. in{Signature:2,Entity,Place}; 5. object{Signature:2,Action,Entity}; 6. EndRelationTypes; 7. Order: 8. EndOrder; 9.EndTRelSet;
de ordem é aberta na linha 7 e encerrada na linha 8 sem conter elementos entre delas. Para exemplificar a criação de uma relação pode-se considerar a linha 4 em que é criada a Relação “in” que possui a valência “2” (representado por signature) e relaciona os Conceitos Entity e Place. Os elementos apresentados acima são algumas formas de representação do BCGCT que, como dito anteriormente, é um modelo de representação de Grafos Conceituais em forma de texto no qual o CoGXML foi baseado.
O CoGXML possui características bastante semelhantes ao formato anterior. A maioria dos elementos do BCGCT possui sua respectiva representação no CoGXML. Na Figura 9 é apresentado um exemplo.
Figura 9 – Representação de Conceitos no CoGXML
A Figura 9 apresenta a forma de representação dos Conceitos de um Grafo Conceitual em CoGXML. A linha 1 possui a marcação que tem por finalidade iniciar a representação dos Conceitos e a sua ordem. Da linha 2 até a linha 10 tem-se a criação dos Conceitos. Para exemplificar será utilizada a linha 9 em que o Conceito possui o atributo id com valor “c7” e atributo label com o valor “Lake”. Após a criação dos Conceitos com seus atributos, é então dado início à criação da ordem (seguindo a mesma lógica do BCGCT). Por exemplo, na linha 17 ocorre a definição de que o Conceito com atributo id de valor “c7” é um subtipo do Conceito com atributo id “c8” de valor “Place”. A definição da ordem é realizada entre as linhas 11 e 17. Já na linha 18, existe a marcação </conceptTypes> que finaliza a definição dos Conceitos e a ordem entre eles. Após a
1.<conceptTypes>
2. <ctype id="c0" label="Universal"/> 3. <ctype id="c1" label="Action"/> 4. <ctype id="c2" label="Attribute"/> 5. <ctype id="c3" label="Entity"/> 6. <ctype id="c4" label="Think"/> 7. <ctype id="c5" label="Sleep"/> 8. <ctype id="c6" label="Fish"/> 9. <ctype id="c7" label="Lake"/> 10. <ctype id="c8" label="Place"/> 11. <order id1="c1" id2="c0"/> 12. <order id1="c2" id2="c0"/> 13. <order id1="c3" id2="c0"/> 14. <order id1="c4" id2="c1"/> 15. <order id1="c5" id2="c1"/> 16. <order id1="c6" id2="c1"/> 17. <order id1="c7" id2="c8"/> 18. </conceptTypes>
definição dos Conceitos, definem-se também as Relações. Um exemplo pode ser visualizado na Figura 10.
Figura 10 – Representação de Relações no CoGXML
A Figura 10 apresenta a forma de representação das Relações de um Grafo Conceitual em CoGXML. A linha 1 possui a marcação que tem por finalidade iniciar a representação das Relações e a sua ordem (esta marcação é finalizada na linha 5). Da linha 2 até a 3 apresentam-se as marcações que especificam as Relações e os Conceitos que elas relacionam. Para exemplificar a criação de uma relação pode-se considerar a linha 4. Nessa linha é criada a Relação com atributo id com valor “r2”, o atributo label com valor
“object” e o atributo idSignature com o valor “c1 c6” (o último atributo contem o id dos
Conceitos que ela relaciona).
Estes foram alguns elementos necessários para composição de Grafos Conceituais em CoGXML. Tanto este modelo XML, quanto o modelo textual BCGCT, desenvolvidos pelo projeto CoGITaNT, possuem inúmeros elementos que permitem a criação de Grafos que dão suporte à Grafos aninhados (como foi citado anteriormente). Para construção deste tipo de Grafo, deve-se realizar um estudo mais completo sobre estes elementos, bem como da biblioteca C++ que permite a construção de softwares que dão suporte a estes elementos. Neste trabalho foi realizado apenas um estudo introdutório para auxiliar na proposta de um modelo XML para implementação da ferramenta em Flash.
1.<relationTypes>
2. <rtype id="r0" label="attr" idSignature="c6 c2"/> 3. <rtype id="r1" label="in" idSignature="c6 c12"/> 4. <rtype id="r2" label="object" idSignature="c1 c6"/> 5.</relationTypes>
3 MATERIAL E MÉTODOS
Nesta seção serão apresentados os recursos utilizados durante o desenvolvimento do trabalho. Entre eles, têm-se pesquisas bibliográficas, recursos de hardware e de software. Os recursos utilizados de hardware e software foram disponibilizados pelos laboratórios de informática do curso de Sistemas de Informação do CEULP/ULBRA.
3.1 Local e período
Monografia desenvolvida como requisito parcial da disciplina de Prática em Sistemas de Informação II cursada no oitavo período do Curso de Sistemas de Informação do CEULP/ULBRA no segundo semestre de 2004. Este trabalho foi desenvolvido como uma pesquisa assinada pelo LABMIDIA (Laboratório de Multimídia e Hipermídia) que disponibilizou recursos de hardware e software.
3.2 Materiais
Os recursos de hardware e software utilizados neste trabalho estão disponíveis nos laboratórios de informática do curso Sistemas de Informação do CEULP/ULBRA, já os recursos bibliográficos foram adquiridos na Internet (exceto os livros disponíveis no LABMIDIA). Na subseção seguinte segue uma enumeração dos recursos utilizados.
3.2.1 Hardware
3.2.2 Software
Microsoft Windows 2000 Professional;
Microsoft Office XP; Internet Explorer 6.0; Acrobat Reader 6.0; Macromedia Flash MX; Macromedia Fireworks MX; Macromedia Dreamweaver MX.
3.2.3 Fontes Bibliográficas
Teses de Mestrados;
Trabalhos de Conclusão de Curso;
Artigos;
Livros;
Sites.
3.3 Metodologia
Primeiramente foi definido um modelo utilizando a DTD da linguagem XML para validar arquivos XML gerados a partir da interpretação dos Grafos Conceituais na forma gráfica. Depois deu-se início à implementação de uma ferramenta que pudesse permitir a criação de Grafos Conceituais básicos e permitisse a interpretação citada acima.
A implementação foi realizada com ActionScript 1.0. A implementação iniciou-se através da programação estruturada, no entanto, verificou-se que a utilização do paradigma da Orientação a Objetos (através da implementação de classes) permitiria a recuperação das informações necessárias.
4 RESULTADOS E DISCUSSÃO
Nesta seção serão apresentados alguns dos resultados obtidos com a realização deste trabalho. Dentre eles, a arquitetura da ferramenta desenvolvida, o modelo XML para interpretação de Grafos Conceituais básicos, bem como a própria ferramenta, seus elementos e sua implementação.
4.1 Arquitetura
A visualização da arquitetura da ferramenta auxilia na compreensão da forma como os módulos foram implementados, permite um melhor entendimento dos passos que são realizados para o resultado que é gerado pela ferramenta e apresenta um elemento que se propõe como continuação do trabalho. A Figura 11 apresenta a arquitetura da ferramenta.
Figura 11 – Arquitetura da ferramenta
A ferramenta gráfica para construção de hiperdocumentos educacionais pode ser dividida em três partes distintas no que diz respeito à implementação. A primeira parte, indicada pela letra “A” na Figura 11, consiste no espaço para edição dos Grafos Conceituais no modo gráfico, a segunda parte, indicada pela letra “B” na Figura 11, diz respeito à interpretação do modo gráfico para um Formato XML e a terceira parte, ,
indicada pela letra “C” na Figura 11, refere-se à criação dos hiperdocumentos educacionais a partir do formato XML.
No desenvolvimento deste trabalho, as partes implementadas estão marcadas por um retângulo pontilhado na Figura 11. Ou seja, a ferramenta permite a criação de Grafos Conceituais básicos em modo gráfico (possibilitando a criação de Conceitos, Relações e Ligações) e realiza a tradução para um formato XML. A terceira parte, referente à geração dos hiperdocumentos educacionais é apresentada como continuação deste, na seção 5. Na próxima seção será apresentado o modelo XML utilizado na interpretação dos Grafos Conceituais.
4.2 Modelo XML
O modelo XML desenvolvido neste trabalho permite a criação e validação de Grafos Conceituais básicos (leia-se: Conceitos, Relações e Ligações). Para apresentar este modelo, deve-se primeiramente apresentar a DTD que valida os documentos para que se entenda o valor de cada elemento. Na Figura 12 tem-se a DTD do modelo XML.
1: <!ELEMENT graph (concept*, relation*, link*)> 2: <!ELEMENT concept EMPTY>
3: <!ATTLIST concept idConcept ID #REQUIRED
4: typeConcept CDATA #REQUIRED
5: referring CDATA #IMPLIED>
6: <!ELEMENT relation EMPTY>
7: <!ATTLIST relation idRelation ID #REQUIRED
8: typeRelation CDATA #REQUIRED
9: valence CDATA #REQUIRED>
10: <!ELEMENT link EMPTY>
11: <!ATTLIST link idLink ID #REQUIRED
12: cid IDREF #REQUIRED
13: rid IDREF #REQUIRED>
Figura 12 – DTD do modelo XML criado para ferramenta
A Figura 12 apresenta a DTD do modelo XML criado para validação dos Grafos Conceituais criados na ferramenta desenvolvida neste trabalho. A linha 1 apresenta a criação do elemento graph que possui: zero ou mais elementos concept, relation e link. A restrição de zero ou mais, que é representado pelo “*” ao lado direito de cada elementos (vide linha 1) se faz necessária, pois um Grafo Conceitual pode ser do tipo vazio (sem elementos) ou do tipo simples (com apenas um Conceito).
A linha 2 apresenta o elemento concept que é do tipo EMPTY (ou seja, elemento vazio). Nas linhas 3 a 5 são apresentados os atributos do elemento concept que são: idConcept do tipo identificador (ID) obrigatório (REQUIRED); typeConcept que é composto por texto (CDATA) e também obrigatório; e, por fim, o atributo referring que também é composto por texto e é opcional (IMPLIED).
A linha 6 apresenta o elemento relation que é do tipo EMPTY (assim como o concept). Nas linhas 7 a 9 são apresentados os atributos do elemento relation que são: idRelation do tipo identificador (ID) obrigatório (REQUIRED); typeRelation que é composto por texto (CDATA) e também obrigatório; e, por fim, o atributo valence que também é composto por texto e é obrigatório.
A linha 10 apresenta o elemento link que é do tipo EMPTY (assim como o concept e o relation). Nas linhas 11 a 13 são apresentados os atributos do elemento link que são: idLink do tipo identificador (ID) obrigatório (REQUIRED); cid e rid que são do tipo (IDREF) que fazem referencia a um elemento do tipo (ID) que esteja presente no documento XML.
Na Figura 13 será apresentado um exemplo de Grafo Conceitual com seu documento XML correspondente.
Figura 13 – Exemplo de Grafo na Display Form com o código XML correspondente
O Grafo Conceitual apresentado na Figura 13 pode ser lido da seguinte forma:
“Professor, que é um tipo de pessoa, está na Cadeira”. Existem dois Conceitos [Pessoa:
Professor] e [Cadeira] e estes possuem a Relação (Na). Ainda na Figura 12 tem-se o código XML que representa o Grafo Conceitual. As linhas 1 e 2 apresentam marcações que
representam declarações do documento XML. A linha 3 apresenta a tag raiz que inicia o grafo (o grafo é finalizado na linha 9).
A linha 4 apresenta o Conceito identificado pelo atributo idConcept com valor
“Conceito1”. Além deste atributo identificador, ainda existem outros dois atributos que são
typeConcept com valor “Pessoa” e referring com valor “Professor”. A linha 5 apresenta o outro Conceito presente no Grafo que é identificado pelo atributo idConcept com valor
“Conceito2” e o outro atributo é typeConcept com valor “Cadeira” (nota-se que este
Conceito não possui um referring atribuído.
A linha 6 apresenta a Relação identificada pelo atributo idRelation com valor
“Relacao1”. Além deste atributo identificador, ainda existem outros dois atributos que são
typeRelation com valor “Na” e valence com valor “2”.
A linha 7 apresenta a Ligação identificada pelo atributo idLink com valor “Ligacao1” que, além deste atributo identificador, ainda possui outros dois atributos que são cid com valor
“Conceito1” e rid com valor “Relacao1” que fazem referência aos ID’s dos elementos que
ela liga. A linha 8, analogamente à linha 7, apresenta a Ligação identificada pelo atributo idLink com valor “Ligacao2”. Além deste atributo identificador, ainda possui outros dois atributos que são cid com valor “Conceito2” e rid com valor “Relacao1” que fazem referência aos ID’s dos elementos que ela liga. A ferramenta, seus componentes e a sua implementação serão apresentados na próxima seção.
4.3 Ferramenta desenvolvida
A ferramenta desenvolvida neste trabalho foi criada utilizando a tecnologia Flash e a linguagem ActionScript 1.0. O Flash permite a criação de ambientes gráficos para interação com o usuário através de seus elementos. A ferramenta permite a criação de Grafos Conceituais básicos (utilizando Conceitos, Relações e Ligações) e transforma este grafo para um formato XML. A Figura 14 representa a tela da ferramenta com um Grafo Conceitual criado.
Figura 14 – Tela da ferramenta para construção de Grafos Conceituais
A Figura 14 apresenta a tela da ferramenta para a construção de Grafos Conceituais. Antes de descrever alguns elementos de interface individualmente, além das restrições para construção de Grafos Conceituais que foram implementadas, será ilustrada nessa seção, a tela da ferramenta.
A tela da ferramenta pode ser dividida em três partes de acordo com sua função. Por exemplo: a parte superior da ferramenta (Figura 14 – A) consiste no espaço destinado a abrigar as opções de construção do Grafo Conceitual, ou seja, caixas de texto para inserção de texto e botões para criação dos elementos dos Grafos Conceituais; na parte central da ferramenta (Figura 14 – B) o usuário poderá posicionar os elementos; e na parte inferior (Figura 14 – C) a ferramenta apresenta informações para usuário (como mensagens de erro ou confirmação de operação).
A
B
Para mostrar os elementos utilizados na implementação individualmente, esta seção será subdividida em: elementos gráficos do Flash (e estrutura da implementação) e restrições do GC que foram implementadas.
4.3.1 Elementos da Interface
Os elementos de interface do Flash MX que foram utilizados são: movieclips para criação dos Conceitos, Relações e Ligações; buttons para criar os botões que inserem os elementos do Grafo Conceitual na ferramenta, além do botão para transformação do GC no formato XML; input text para permitir que o usuário digite valores como tipo do Conceito e tipo da Relação; combobox para escolha da valência da Relação; e listbox para representar a comunicação da ferramenta com o usuário (apresentando informações sobre restrições para determinadas tentativas de ações dos usuários). Nessa seção, será apresentado cada elemento de interface, bem como sua funcionalidade e seu código ActionScript correspondente. A Figura 15 apresenta alguns movieclips utilizados.
Figura 15 – Movieclips utilizados na ferramenta (Conceito e Relação)
A figura acima apresenta dois elementos utilizados na ferramenta que são do tipo movieclip. Para a definição dos Conceitos (Figura 15 – A) e das Relações (Figura 15 – B), o movieclip correspondente a cada um, foi desenhado com tamanho fixo e inserido na biblioteca do Flash.
Assim, para que eles sejam inseridos no espaço de trabalho da ferramenta e fiquem visíveis ao usuário, é invocado o método que anexa o movieclip (a sintaxe deste método é a seguinte): attachMovie("NomeNaBiblioteca",Nome,profundidade);. Dentro dos movieclips Conceito e Relação existe um input text que recebe um valor digitado pelo usuário (o espaço para o usuário informar este valor será apresentado posteriormente). A Figura 16 apresenta os outros elementos do tipo movieclip que foram utilizados.
Figura 16 – Movieclips utilizados na ferramenta (Ligação)
A Figura 16 apresenta os elementos movieclip que compõem a Ligação. Apesar de ser do tipo movielclip, como os da Figura 15, eles apresentam características diferentes. Para desenhar o corpo da Ligação (Figura 16 – A), utiliza-se o movieclip de outra forma como é apresentado na Figura 17 que representa a função que desenha o corpo da Ligação. 1: function desenhaLigacao(){
2: var linha = createEmptyMovieClip("Ligacao", 2000+_global.numeroLigacao);
3: linha.lineStyle(2, 0x000000, 100);
4: linha.moveTo(_global.comecaX,_global.comecaY); 5: linha.lineTo(_global.fimX, _global.fimY);
6: }
Figura 17 – Função que desenha o corpo da Ligação
A Figura 17 que representa a codificação da função que desenha o corpo da Ligação através da API 2D do Macromedia Flash MX. A linha 1 apresenta a declaração da função. A linha 2 apresenta a declaração de uma variável que recebe o valor do método que cria um movieclip vazio para que seja desenhada uma linha, neste caso o corpo da Ligação (Figura 16 – A). A linha 3 possui valores atributos da linha como: espessura e cor. A linha 4 apresenta o método que irá marcar o ponto de início da linha; e a linha 5 apresenta o método que irá desenhar a linha até o ponto passado por parâmetro (entende-se como ponto uma coordenada X,Y no plano bidimensional).
A ponta da Ligação (Figura 16 – B) é um elemento movieclip que possui características semelhantes aos da Figura 15 no que diz respeito à criação e forma de inserção na ferramenta. No entanto, quando o elemento é inserido (sempre no ponto final do corpo da Ligação), são realizados cálculos matemáticos que retornam o valor do ângulo que a ponta da Ligação deve ser rotacionado. Essa rotação tem a finalidade de acompanhar a inclinação do corpo da Ligação quando necessário (nos códigos em anexo tem-se a apresentação e explicação dos cálculos matemáticos para rotação da ponta da Ligação).
A Figura 18 apresenta os buttons que foram utilizados na implementação da ferramenta. No entanto, para um melhor entendimento das instâncias das classes que são criadas com alguns dos buttons, vale apresentar a estrutura das classes utilizadas na
implementação. Foram criadas três classes (Conceito, Relacao e Ligacao) que são instanciadas dadas determinadas ações do usuário. Seguindo o paradigma da Orientação a Objetos (Meyer, 1989), as classes foram criadas sobre a estrutura apresentada na Figura 18.
Figura 18 – Exemplo da estrutura das classes implementadas
A Figura 18 apresenta a estrutura básica das classes implementadas na ferramenta. Na linha 1 é criado o nome da classe. Nas linhas 2 a 5 tem-se o espaço reservado para o construtor. No exemplo, o construtor atribui um valor para o atributo id (linha 4) e cria outro atributo que receberá a implementação de um método (linha 5). Entre as linhas 7 a 10 existe a implementação do método que foi definido no construtor (linha5). Vale comentar que para cada classe existem atributos e métodos específicos que serão explicados à medida que os elementos de interface vão sendo demonstrados nessa seção.
Sobre a declaração de classe da Figura 18, que representa a sintaxe da declaração de classe do ActionScript, pode-se dizer que ela possui uma sintaxe de declaração de classe diferenciada em relação à Orientação a Objetos no que diz respeito à sua estruturação, pois tal sintaxe é bastante semelhante à sintaxe do JavaScript que é baseada na ECMA-262 (1999).
O código completo de cada classe não será apresentado devido ao seu tamanho, mas a codificação completa da ferramenta está disponível nos anexos deste trabalho. Na Figura 19, abaixo, são apresentados os buttons.
Figura 19 – Buttons utilizados na ferramenta
A Figura 19 apresenta os quatro elementos do tipo button que foram utilizados na ferramenta. Nessa seção, a funcionalidade de cada botão será explicada apenas
A B C D 1. function nomeDaClasse(){ 2. //Construtor 3. //Atributos 4. this.id = valor; 5. this.getId = getId; 6. } 7. //Métodos 8. function getId(){ 9. return this.id; 10. }
textualmente, já os códigos de ActionScript de cada botão serão apresentados e explicados separadamente na seção 4.3.2 que diz respeito às restrições de criação dos Grafos Conceituais.
Na Figura 19 (A), o quadrado tem a finalidade de fazer algumas verificações das restrições sobre a criação dos Conceitos e depois instanciar um objeto da Classe Conceito. No construtor do Conceito, será atribuído valor aos seguintes atributos: idConceito receberá "Conceito"+_global.numeroConceito;.
A parte de código representada por _global.numeroConceito consiste em uma variável global que controla o número de Conceitos criados. Essa variável tem a finalidade de fazer com que o idConceito sempre possua um valor único); os atributos
tipoConceito e referente receberão valores informados pelo usuário; e o noConceito receberá seu valor em forma de um nó XML com os atributos que foram
citados acima (por exemplo, "<concept idConcept=\""+idConceito+"\"
typeConcept=\""+tipoConceito+"\"referring=\""+referente+"\"/> ";).
A elipse (Figura 19 – B) tem a finalidade de fazer algumas verificações das restrições sobre a criação das Relações (tais restrições serão explicadas na próxima seção) e depois instanciar um objeto da Classe Relacao.
No construtor da Relacao, será atribuído valor aos seguintes atributos:
idRelacao receberá "Relacao"+_global.numeroRelacao.
A variável (_global.numeroRelacao é uma variável global que controla o número de Relações criadas. Essa variável tem a finalidade fazer com que o idRelacao sempre possua um valor único); os atributos tipoRelacao e valencia receberão valores informados pelo usuário; e o noRelacao receberá seu valor em forma de um nó XML com os atributos citados acima (por exemplo, "<relation
idRelation=\""+idRelacao+"\" typeRelation=\""+tipoRelacao+"\" valence=\""+valencia+"\" />";).
O botão ligação (Figura 19 – C) possui um código que atribui à variável
_global.botaoLigacao o valor true. Essa variável é global e tem a finalidade de
representar que o botão ligação foi clicado, ou seja, a ferramenta está pronta para que uma Ligação seja criada (o processo de instanciação de um objeto da classe Ligação será apresentado posteriormente).
O botão XML (Figura 19 – D), assim como os botões conceito e relação, também realiza verificação de algumas restrições para criação do Grafo Conceitual e depois invoca uma função responsável pela instanciação do objeto XML (este objeto XML corresponde a interpretação do GC na forma gráfica para um formato XML interpretável por máquina). A função que instancia o objeto XML será apresentada na Figura 20.
1: _global.criaXML = function(){ 2: var strNos = "", i;
3: for(i = 0; i < _global.vetorConceito.length; i++){
4: strNos = strNos + _global.vetorConceito[i].getNoConceito();
5: }
6: for(i = 0; i < _global.vetorRelacao.length; i++){
7: strNos = strNos + _global.vetorRelacao[i].getNoRelacao();
8: }
9: for(i = 0; i < _global.vetorLigacao.length; i++){
10: strNos = strNos + _global.vetorLigacao[i].getNoLigacao(); 11: }
12: var strURL = "http://skywalker/ImplCLASSE/default.asp"; 13: objXML = new XML("<graph>" + strNos+ "</graph>");
14: objXML.docTypeDecl = "<!DOCTYPE graph SYSTEM \"grafoRincon.dtd\">"; 15: objXML.xmlDecl="<?xml version=\"1.0\"encoding=\"ISO-8859-1\"?>"; 16: if(objXML.status == 0){
17: var auxXML = new XML();
18: auxXML.onLoad = function(sucess){ 19: if (sucess)
20: _root.listBox.addItem("Informação: Formato XML criado com SUCESSO");
21: else
22: _root.listBox.addItem("Erro: Servidor não encontrado"); 23: }
24: objXML.sendAndLoad(strURL, auxXML, "POST"); 25: }
26: else{
27: trace("Erro: Arquivo XML não é válido"); 28: }
29: }
Figura 20 – Função que instancia o objeto XML
A Figura 20 apresenta a instanciação do objeto XML, mas vale lembrar que existem verificações de restrições anteriores à chamada desta função que serão apresentadas próxima seção.
Na linha 1 é definido o nome da função. A linha 2 apresenta a instanciação de algumas variáveis auxiliares dentro da função. Entre as linhas 3 à 11, é montada uma string com os valores dos nós de cada objeto das três classe (nota-se que essa string é montada através da varredura realizada nos vetores que guardam as instâncias das três classes). A linha 12 apresenta a declaração da variável que recebe a URL da página que irá salvar o objeto XML em um arquivo.