EDEILSON MILHOMEM DA SILVA DESENVOLVIMENTO DE UM SISTEMA UTILIZANDO A TECNOLOGIA JSP PARA A MANIPULAÇÃO E RECUPERAÇÃO DE FOTOS DOCUMENTADAS EM RDF

Tamanho: px
Começar a partir da página:

Download "EDEILSON MILHOMEM DA SILVA DESENVOLVIMENTO DE UM SISTEMA UTILIZANDO A TECNOLOGIA JSP PARA A MANIPULAÇÃO E RECUPERAÇÃO DE FOTOS DOCUMENTADAS EM RDF"

Transcrição

1 EDEILSON MILHOMEM DA SILVA DESENVOLVIMENTO DE UM SISTEMA UTILIZANDO A TECNOLOGIA JSP PARA A MANIPULAÇÃO E RECUPERAÇÃO DE FOTOS DOCUMENTADAS EM RDF Palmas 2004

2 ii EDEILSON MILHOMEM DA SILVA DESENVOLVIMENTO DE UM SISTEMA UTILIZANDO A TECNOLOGIA JSP PARA A MANIPULAÇÃO E RECUPERAÇÃO DE FOTOS DOCUMENTADAS EM RDF Relatório apresentado como requisito parcial da disciplina de Prática de Sistemas de Informação I (Estágio) do curso de Sistemas de Informação, orientado pela Profª. Parcilene Fernandes de Brito Palmas 2004

3 iii EDEILSON MILHOMEM DA SILVA Desenvolvimento de um sistema utilizando a tecnologia JSP para a manipulação e recuperação de fotos documentadas em RDF Relatório apresentado como requisito parcial da disciplina de Prática de Sistemas de Informação I (Estágio) do curso de Sistemas de Informação, orientado pelo Profª. Parcilene Fernandes de Brito BANCA EXAMINADORA Profª. Parcilene Fernandes de Brito Centro Universitário Luterano de Palmas Prof. Fabiano Fagundes Centro Universitário Luterano de Palmas Prof. Jackson Gomes de Souza Centro Universitário Luterano de Palmas Palmas 2004

4 iv Ensina-me, Senhor o teu caminho, e andarei na tua verdade, une o meu coração ao temor do teu nome. (Salmos 86:16) Os problemas significativos com os quais nos deparamos não podem ser resolvidos no mesmo nível de pensamento em que estávamos quando eles foram criados. (Albert Einsten)

5 v AGRADECIMENTOS No total de 8(oito) degraus, graças a meu bom e amado Pai (Deus), cheguei ao fim do sétimo. Obrigado Deus, por ter me dado forças durante esse percurso, por ter colocado as pessoas certas em minha vida para que pudessem me dar o apoio moral e psicológico que precisava para continuar a acreditar em mim mesmo. Agradeço a você, mamãe querida, por, em muitos momentos, ter me compreendido (pra não dizer suportado) e me dado o apoio necessário para continuar a luta, por me fazer acreditar que eu sempre posso e poderei bem mais do que minha mente possa imaginar. Enfim, por depositar confiança em mim. Ah..., Dna. Maria, obrigado por ter me fornecido a base necessária pra eu estar aqui hoje, agradecendo-a. Amo muito a senhora, mesmo que às vezes não demonstre isso expressivamente. Agradeço a vocês maninhas, Katá e Nicky. A Katá por sempre ter demonstrado tão intensamente o seu imenso amor por mim, por sempre ter feito esforço em me compreender, onde em muitos momentos nem eu mesmo conseguia. Lembra como a gente ia de mãos dadas pra escola?! Isso foi o princípio de tudo, mas você não imagina o quanto esses anos juntos, na escola, me deram o sustento necessário para prosseguir em frente, sozinho. Nicky, mesmo que às vezes transpareça que eu tenha maior afinidade, carinho, atenção e amor pela Katá, isso é uma inverdade e você sabe disso. Te amo tanto quanto a Katá, e você sempre será uma pessoa muito importante pra mim. Conte comigo sempre que precisar, pois estarei lá para te estender a mão. Agradeço a você, meu melhor cunhado, segundo você: o cara agregado à família. Obrigado negão, por ser uma pessoa amiga, companheira e ter sempre as palavras certas no momento oportuno. Como já dizia você...: cada um sabe a dor e delícia de ser o que é, então negão, seja feliz. Ah! Quando tiver rico, não esquece do cunhadão aqui, hein! Agradeço a você Parcilene, orientadora, psicóloga e amiga querida, que um dia me fez enxergar que não valia a pena desistir da guerra. Ainda que eu acreditasse nisso não encontrava forças para continuar. Continuei, e hoje estou aqui, preste a vencer a primeira batalha, prestando-te meus sinceros agradecimentos. A você Fabigundes (Fabiano) que sempre tentou trazer ânimo, incentivo e que também sempre deu as velhas e boas porradas na tentativa de fazer com que nós, alunos, nos tornássemos pessoas melhores. Ainda que essas porradas, na grande maioria das vezes, causassem algum transtorno, você nunca exitou em dá-las e pode ter certeza que eu

6 vi tirei muito proveito disso tudo e confesso também que, em alguns momentos, fiquei chateado e magoado, mas acredito que isso faz parte. Agradeço também ao grupo batizado como Amaleros, formado por: André (Rincon ou Dedé), Carlos(Kaká ou Careli), Fernando (Óculos) Leandro (Mamá ou Macieira), Lucas (Skywalker ou Luquinha), Jorge (Ginho), Fabiano (Fabigundes) e Victor (Narizinho - o ladrão de oxigênio mesmo sem perceberem, me forneceram subsídios para continuar em frente. Enfim, mesmo que indiretamente, são muitas as pessoas que, de alguma forma, contribuíram para a conclusão do referido trabalho, por isso, minha sincera gratidão a todos.

7 vii SUMÁRIO LISTA DE FIGURAS...ix LISTA DE TABELAS...xii LISTA DE ABREVIATURAS...xiii RESUMO ABSTRACT Introdução Revisão de Literatura Servlet Funcionamento de um Servlet Java Server Pages Objetos Pré-definidos para a Criação de Páginas JSP Expressões e Declarações Diretivas XML Namespaces Resource Description Framework Modelo Básico RDF Primitivas do modelo RDF Schema API Jena Considerações Materiais e Métodos Local e Período Materiais Hardware Software... 64

8 viii Fontes Bibliográficas Metodologia Resultados e Discussão O Sistema RDF Schema na Criação de um Conjunto de Regras para Descrição das Imagens Representação do Vocabulário em uma Classe Java Utilizando o Vocabulário representado em uma Classe Java para Criação de um Documento RDF Processo de Armazenamento das Descrições das Imagens Classe Criada para Implementação do Sistema Método verificararquivoexiste(string) Método gravararquivo(string, Model) Método gravararquivo (String, RDFWriter, Model) Método carregararquivo(string) Método pegarnovoarquivo (String) Método pegarconjuntoarquivos(string) Utilizando o Sistema para Descrição de uma Imagem Considerações Considerações finais Referência Bibliográfica ANEXO APÊNDICE... 96

9 ix LISTA DE FIGURAS Figura 1 - Arquitetura proposta para a Web Semântica (Berners-Lee, 2001) Figura 2: A arquitetura de aplicativo servlet (KUMIAWAN, 2002) Figura 3: Como funciona um Servlet Figura 4: Exemplo de um código Servlet Figura 5: Etapas da primeira execução de uma página JSP (OLIVEIRA, 2001) Figura 6: Exemplo simples de uma página JSP Figura 7: Código HTML retornado para o cliente e a Servlet gerada a partir da requisição do documento JSP demonstrado na Figura Figura 8: Comparação entre a utilização de uma expressão e o método println() da classe JspWriter Figura 9: Exemplo de declaração de uma variável inteira tanto no escopo de um scriptlet, quanto como atributo da classe Servlet Figura 10: Sintaxe de definição de diretivas (HALL,?) Figura 11: Sintaxe para utilização da diretiva include Figura 12: Exemplo de um DTD três elementos e um atributo Figura 13: Exemplo de um arquivo XML válido e bem formado de acordo com o DTD da Figura Figura 14: Exemplo de declaração de um namespace Figura 15: Esquema de utilização de um namespace em um documento XML Figura 16: Documento XML que utiliza os elementos pré-definidos em um namespace Figura 17: Representação de uma sentença: grafo e tripla Figura 19: Propriedade com valor estruturado usando um nó vazio Figura 20: Propriedade com valor estruturado Figura 21: Formato de representação de dados em RDF Figura 22: Sentença em forma de tripla Figura 24: Serialização em XML de um recurso RDF de forma abreviada Figura 25: Representação de uma sentença sem o elemento <rdf:rdf> Figura 26: Representação do elemento <rdf:description> Figura 28: Representação do atributo <rdf:id> Figura 29: Grafo da definição de um tipo Figura 30: Representação do atributo <rdf:type>... 41

10 x Figura 31: Representação do atributo <rdf:type> como atributo do elemento <rdf:description> Figura 32: Representação do atributo <rdf:type> com o mecanismo de namespace 42 Figura 33: Representação do elemento bag Figura 34: Representação do elemento Sequence Figura 35: Representação do elemento Alternative Ordenação Figura 36: Representação de um código RDF reificado Figura 37: Representação gráfica de uma esquema e sua utilização em um documento RDF Figura 38: Hierarquia de classes do modelo RDF Schema (BRICKLEY, 2000) Figura 39: Modelo RDF/XML utilizado para definição de classes e propriedades Figura 40: Processo de definição de classes Figura 41: Representação gráfica de um esquema Figura 42: Parte do esquema da Figura 41 serializado em XML Figura 43: Sintaxes da criação de uma classe Figura 44: Sintaxes de definição de uma propriedade e seu relacionamento com uma classe Figura 45: Definição de Propriedade Figura 46: Exemplo do elemento <rdfs:subclassof> Figura 47: Hierarquia de propriedades a partir da utilização do elemento <rdfs:subpropertyof> Figura 48: Representação do elemento <rdfs:range> Figura 49: Representação do elemento <rdfs:domain> Figura 49: Representação de uma taxionomia em RDF/XML Figura 50: Exemplo de criação de um documento RDF simples Figura 52: Exemplo de definição de tipagem para um dado recurso Figura 53: Resultado obtido a partir da execução do código demonstrado na Figura Figura 54: Criação um recurso com uma propriedade tendo como valor um outro recurso Figura 55: Resultado obtido a partir da execução do código demonstrado na Figura Figura 56: Etapas possíveis para descrição das imagens Figura 57: Esquema que representa as imagens referentes ao domínio Instituição de

11 xi Ensino Superior Figura 58: Grafo do esquema da Figura Figura 59: Criação de um vocabulário em uma classe Java: utilizando a API Jena Figura 60: Código Java de criação de um documento RDF a partir do esquema representado na seção Figura 61: Documento RDF gerado a partir da execução do código Java demonstrado na Figura Figura 62: Estrutura hierárquica de armazenamento dos documentos RDF Figura 63: Documento que armazena o nome dos arquivos RDF que descrevem as imagens: de acordo com a posição ocupada pelos mesmos no esquema Figura 64: Código Java que implementa o método verificararquivoexiste (String) Figura 65: Código Java que implementa o método gravararquivo (String, Model) Figura 66: Código Java que implementa o método gravararquivo (String, RDFWriter, Model) Figura 67: Código Java que implementa o método carregararquivo(string) Figura 68: Código Java que implementa o método pegarnovoarquivo (String)81 Figura 69: Código Java que implementa o método pegarconjuntoarquivos (String) Figura 70: Tela Principal do Sistema Figura 71: Formulário que possibilita a submissão das informações sobre uma dada imagem Figura 72: Documento RDF gerado... 84

12 xii LISTA DE TABELAS Tabela 1: Objetos implícitos de uma página JSP (BROGDEN, 2002) 23 Tabela 2: Atributos da diretiva page. 27 Tabela 3: Sentença dividida em partes 33 Tabela 4: Comparação entre os tipos de Coleções providas pelo modelo RDF (BRAGANHOLO, 2001). 44 Tabela 5: Resultado da sentença utilizando uma reificação 45 Tabela 6: Cronograma de atividades 66 Tabela 7: Relação dos métodos da classe Arquivo. 78 Tabela 8: Métodos da classe HttpServletRequest (BROGDEN, 2002) 91 Tabela 9: Métodos da classe HttpServletResponse (BROGDEN, 2002) 92 Tabela 10: Métodos da classe JspWriter (BROGDEN, 2002) 93 Tabela 11: Métodos da classe HttpSession (BROGDEN, 2002) 93 Tabela 12: Métodos da classe ServletContext (BROGDEN, 2002) 94 Tabela 13: Métodos da classe PageContext 95

13 xiii LISTA DE ABREVIATURAS API = Application Programmer Interface DTD = Document Type Definition HP = Hewlett-Packard Compan HTML = HyperText Markup Language HTTP = HyperText Transfer Protocol JSP = Java Server Pages RDF = Resource Description Framework RDQL = Query language for RDF URI = Uniform Resoucer Identifier W3C = World Wide Web Consortium XML = extensible Markup Language

14 12 RESUMO As páginas dispostas na web não obedecem a uma estrutura padrão, ou seja, são geradas de acordo com a estrutura definida pelos desenvolvedores (webmasters). Devido a essa heterogeneidade (falta de padronização) as pesquisas realizadas pelos sites tradicionais de busca são possíveis apenas por palavra-chave. Esse é um dos motivos pelos quais, quando um usuário faz uma busca em um desses sites, muitas páginas irrelevantes para pesquisa são retornadas, tendo o mesmo que fazer uma filtragem manual dessas informações. Um dos passos para tornar essas pesquisas eficientes é a estruturação das páginas segundo um padrão. Dessa forma, foi proposto pela W3C o modelo RDF, que dentre os recursos oferecidos, dispõe de mecanismo que possibilita a estruturação das páginas de forma homogênea. Tendo como base esse modelo, o presente trabalho discorre sobre o desenvolvimento de um sistema que possibilita a estruturação de informações referentes ao domínio imagens da instituição de ensino superior CEULP/ULBRA. Para o desenvolvimento desse trabalho foi utilizada a tecnologia JSP (tecnologia que permite o desenvolvimento de páginas web a partir da linguagem Java), isso porque a linguagem Java dispõe de uma API (Jena) que possibilita a interação com documentos RDF. Palavras-chaves: RDF, RDF Schema, API Jena e JSP.

15 13 ABSTRACT The web pages do not obey to a standard structure, or either, they are generated in accordance with the structure defined by the developers (webmasters). Because this heterogeneity (standardization lack) the searches made by traditional search engines are possible only through keywords. This is one of the reasons for which when an user makes a search in one of these sites many pages irrelevant for the search are returned, of this form the user has that manual filtering the information. One of the steps to become these searchs efficient is the definition of the pages according to a standard. Of this form, model RDF was considered by the W3C, that amongst the resources offered for exactly, makes use of mechanism that makes possible the organization of the pages of homogeneous form. Following this model, the present work discourses about the development of a system that makes possible to structuralize the information according the domain "images of the superior education institute CEULP/ULBRA". For development of this work the technology JSP was used (technology that allows the development of web pages from the Java language), this because the Java language makes use of an API (Jena) that makes possible the interaction with RDF documents. Keywords: RDF, RDF Schema, API Jena e JSP

16 14 1 INTRODUÇÃO A web semântica representa a evolução da web atual. Ela visa fornecer estruturas e dar significados ao conteúdo das páginas web, criando um ambiente onde agente de software e usuários possam trabalhar de forma cooperativa (BERNERS-LEE, 2001). Desta forma, vários trabalhos estão sendo desenvolvidos com o intuito de se criar um ambiente propício para a existência de uma web com significado. Na arquitetura proposta para a web semântica de Berners-Lee (2001) (Figura 1) é possível visualizar uma sistematização das etapas de construção desse ambiente. Figura 1 - Arquitetura proposta para a Web Semântica (Berners-Lee, 2001) De acordo com a arquitetura proposta por (Berners-Lee, 2001) (Figura 1), a camada

17 15 de estrutura representa o primeiro passo para a definição da web semântica, pois nesse momento em que as informações são sistematizadas, ou seja, é dado significado os dados. A camada de esquema, a ontologia, fornece um conjunto de regras que define hierarquia, relacionamentos e restrições entre termos, ou seja, permite a representação de um conjunto de regras mediante a especificação de um dado domínio e, para isso são utilizadas linguagens para ontologia. (LUSTOSA, 2003). E, por fim, a camada lógica tem a função de definir um conjunto de regras de inferências, além dos próprios mecanismos que as realizarão, atribuindo-as aos documentos que contém dados. As regras de inferência oferecem aos agentes computacionais o poder de raciocinar sobre as estruturas de dados que estão expressas na camada de estrutura, a partir das relações entre esses dados definidas na camada de esquema (LUSTOSA, 2003). O presente trabalho está vinculado à camada de estrutura da web semântica, desta forma, é construído um ambiente que utilize tecnologias capazes de propiciar uma sistematização das informações, de forma que elas venham a ter um significado para a máquina. No referido trabalho será utilizado o padrão RDF, recomendado pela W3C. De uma forma simples, o RDF pode ser entendido como um padrão que tem como funcionalidade prover metadados na web através da aplicação da linguagem XML. Sua padronização estabelece um modelo de dados e sintaxe para codificar, representar e transmitir metadados (CIUFFO, 2002). Para o desenvolvimento do ambiente, escolheu-se o domínio imagens da instituição de ensino superior CEULP/ULBRA. Dessa forma, foi desenvolvido um sistema web que permite o armazenamento de imagens e a descrição da mesma a partir do modelo RDF. Para o desenvolvimento do ambiente foi utilizada a tecnologia JSP, pois a mesma além de ser uma tecnologia voltada para a web, também trabalha com a linguagem Java. Isso é um fator positivo, levando-se em consideração que há uma API (Application Programing Interface) Java, desenvolvida pela HP, que dispõe de várias classes que permitem a interação com um documento RDF. Este trabalho está organizado da seguinte forma: na seção 2.1 são apresentados os conceitos teóricos que fundamentam a tecnologia Servlet, já que a mesma é a base de funcionamento da tecnologia JSP, apresentada na seção 2.2. Na seção 2.3 é feita uma breve

18 16 explanação da linguagem de marcação XML, pois a mesma além de serializar o modelo RDF, também dispõe de um recurso (seção 2.3.1) que possibilita o compartilhamento de vocabulários: namespace. A seção 2.4 apresenta o modelo RDF, logo em seguida é demonstrado na seção o modelo RDF básico, caracterizado como um padrão para descrição de recursos (universo de objetos que podem ser descritos) com propriedades (atributos dos recursos). E, na seção é feita uma explanação a respeito do RDF Schema, utilizado para representação de esquemas, ou seja, fornece descrição de grupos de recursos e os relacionamentos existentes entre eles. A seção 2.5 apresenta alguns dos recursos disponibilizados pela API Jena para criação e manipulação de documentos RDF. A seção 2.6 apresenta breves considerações a respeito dos conceitos que fundamentam teoricamente o trabalho. Os materiais e a metodologia utilizados para o desenvolvimento do presente trabalho são apresentados na seção 3. E, logo a seguir (seção 4) são demonstrados os resultados obtidos a partir do desenvolvimento do sistema e quais foram os passos seguidos para o seu desenvolvimento. E, para finalizar, são apresentadas as considerações finais, seguido das referências utilizadas para o desenvolvimento do trabalho.

19 17 2 REVISÃO DE LITERATURA 2.1 Servlet Servlet é uma tecnologia para internet baseada na plataforma Java que possibilita a criação de página web de forma dinâmica (JCP - SERVLET SPECIFICATION, 2003). Ou seja, as páginas web podem ser geradas dinamicamente diante da ação de um determinado usuário. Essa interação com o usuário é baseada na arquitetura cliente-servidor em que o cliente faz uma requisição via HTTP ou HTTPS (protocolo de comunicação web), o servidor processa a solicitação e por fim envia a resposta ao solicitante. A Figura 2 demonstra a arquitetura de um aplicativo Servlet. Figura 2: A arquitetura de aplicativo servlet (KUMIAWAN, 2002) Ainda segundo a representação da Figura 2 um aplicativo Servlet também pode incluir conteúdos estáticos, tais como: uma página HTML ou um arquivo imagem.

20 Funcionamento de um Servlet Quando o servidor recebe uma solicitação de um cliente para processar uma página pela primeira vez, o mesmo efetua o carregamento do Servlet, carrega-o na memória e por fim envia a resposta ao cliente. Depois que o Servlet foi carregado permanecerá na memória aguardando outras solicitação. A Figura 3 demonstra como é o funcionamento de um Servlet. Figura 3: Como funciona um Servlet Caso a página não mais esteja sendo requerida pela primeira vez, o servidor verifica se o Servlet sofreu alguma alteração. Caso tenha sido alterado, o servidor carrega o Servlet novamente na memória e envia a resposta ao cliente.

21 Esse processo de envio do Servlet para a memória tem o intuito de agilizar o processamento para uma suposta nova solicitação feita por um cliente de uma página web. 19 Figura 4: Exemplo de um código Servlet. Conforme pode ser observado na Figura 4, não é uma tarefa muito simples e rápida desenvolver uma página web utilizando a tecnologia Servlet, pois o código HTML das páginas devem ser criados a partir da sintaxe Java, utilizando strings para definição dos elementos HTML. Isso dificulta bastante o trabalho do desenvolvedor porque além de se preocupar em como as informações estarão expostas na parte gráfica da página, tem que se preocupar também com a parte lógica (implementação das classes propriamente dita).

22 Java Server Pages Como forma de sanar o problema da tecnologia Servlet no que diz respeito a dificuldade de edição de páginas web surgiu a tecnologia JSP, que não veio para substituíla, mas sim estender a sua potencialidade. Dessa forma, JSP oferece uma maior facilidade de codificação, além de permitir também uma programação separada em camadas: camada lógica (parte dinâmica) e camada de apresentação (parte estática), e através disso facilitar tanto a elaboração quanto a manutenção de uma aplicação. Segundo (JCP, 2003), JSP é uma tecnologia para desenvolvimento de aplicações web que utiliza a linguagem Java. Uma página JSP é um documento que descreve como criar uma resposta para uma solicitação em um determinado protocolo. O protocolo utilizado como padrão para essas solicitações e respostas é o HTTP. Como se trata de uma tecnologia baseada em Java, ela herda todas suas características como: linguagem baseada nos conceitos da orientação a objetos, multiplataforma, além do gerenciamento automático de memória. Quando uma página JSP é carregada pela primeira vez o código Java é compilado gerando uma Servlet que é executado. Após o carregamento dessa Servlet, uma página HTML é enviada para o browser (navegador) do cliente. As próximas requisições são enviadas diretamente a Servlet que foi gerada na primeira vez em que a página foi carregada, não ocorrendo mais as etapas de geração e compilação. A Figura 5 mostra o esquema de execução de uma página JSP na primeira vez em que é requisitada.

23 21 Figura 5: Etapas da primeira execução de uma página JSP (OLIVEIRA, 2001) Conforme representação da Figura 5, quando uma página web é solicitada é enviada uma requisição ao servidor web, sendo que o mesmo a encaminha para o contentor Servlet/JSP, e com isso (passo 3) o contentor verificará que não há uma instância de Servlet correspondente à página JSP. Dessa forma, a página JSP é traduzida para o código fonte de uma classe Servlet que será usada na resposta à requisição. No passo (4) o código fonte do Servlet é compilado, no passo (5) é criada uma instância da classe, e por fim, (passo 6), é gerada a resposta à requisição feita pelo cliente. A Figura 6 mostra um exemplo simples de uma página JSP. Figura 6: Exemplo simples de uma página JSP

24 22 Conforme representação da Figura 6, uma página JSP pode ser formada tanto por conteúdo estático (HTML), quanto por código dinâmico (processado do lado do servidor), sendo que o código processado pelo servidor é delimitado respectivamente pelas tags de abertura e fechamento <% e %>. Quando uma página JSP é requisitada, processada e carregada é retornado ao cliente apenas o código HTML, escondendo assim o código fonte que a originou. A parte 1 da Figura 7, tendo como base o documento JSP apresentado na Figura 6, exibe o código HTML retornado para o cliente e, a parte 2 demonstra o Servlet gerado após o carregamento da página JSP.. Figura 7: Código HTML retornado para o cliente e a Servlet gerada a partir da requisição do documento JSP demonstrado na Figura Objetos Pré-definidos para a Criação de Páginas JSP Uma característica importante da tecnologia JSP é que a mesma disponibiliza objetos implícitos (o desenvolvedor não precisa instanciá-los), que são sempre criados quando uma página JSP é carregada, formando assim o Servlet equivalente. A Tabela 1

25 23 demonstra quais são esses objetos. Tabela 1: Objetos implícitos de uma página JSP (BROGDEN, 2002) Objeto Tipo request response pagecontext session application out config page exception javax.servlet.servletrequest javax.servlet.servletresponse javax.servlet.jsp.pagecontext javax.servlet.http.httpsession javax.servlet.servletcontext javax.servlet.jsp.jspwriater javax.servlet.servletconfig Uma referência de objeto apontando para this Exceções (throwable) Conforme pode ser observado na Tabela 1, são nove os objetos pré-definidos que podem ser utilizados durante o desenvolvimento de uma aplicação JSP. Dentre as quais 6 destacam-se: HttpServletRequest, HttpServletResponse, JspWriter, HttpSession, ServletContext e PageContext, pois são utilizadas com maior freqüência. A seguir é feita uma explanação a respeito das classes às quais esses objetos pertencem e em anexo segue alguns de seus métodos e suas respectivas descrições. Classe HttpServletRequest: o objeto request tem a responsabilidade de representar todas as solicitações feitas pelos usuários, como por exemplo: fornecer meio de acesso a cookies, acesso a parâmetros advindos de uma página e, até mesmo a URL que fez a solicitação. Classe HttpServletResponse: segundo (BROGDEN, 2002), HttpServletResponse é uma extensão da interface ServletResponse, que acrescenta métodos específicos para as transações HTTP. Essa classe fornece métodos que permitem representar as

26 respostas que serão dadas ao cliente mediante a requisição de uma página. 24 Classe JspWriter: a finalidade dessa classe é proporcionar funcionalidades de fluxos de saídas para o conteúdo de uma página, ou seja, disponibiliza métodos para enviar informações para o navegador (browser) do cliente. Classe HttpSession: essa interface permite trabalhar com as variáveis específicas pertencentes à sessão de cada usuário e é de fundamental importância, pois informações pertencentes a uma dada sessão podem ser utilizadas em páginas distintas, desde que a sessão seja a mesma. Classe ServletContext: quando uma Servlet é gerada, uma instância da interface ServletContext é criada. Esse objeto representa a aplicação a qual a página JSP pertence. Segundo (BROGDEN, 2002), esse é o caminho primário para a comunicação entre uma Servlet e o contentor Servlet. Cada aplicativo web, que pode conter várias Servlets ou páginas JSP, compartilha um ServletContext. Classe PageContext: essa classe fornece métodos para gerenciar os recursos oferecidos pelas Servlets (BROGDEN, 2002). Ou seja, é ela quem define os objetos que podem ser utilizados de forma implícita dentro de uma página JSP Expressões e Declarações Além dos scriptlets (código Java inserido entre os elementos <% e %> ), a tecnologia JSP permite também que o código Java seja colocado numa página usando expressões e declarações (HUNTER, 2002). Uma expressão é determinada pelos elementos <%= e %>, em que o elemento <%= determina seu início e o elemento %> determina o fim. Expressão é um meio alternativo e rápido de se enviar um valor (dado de saída) para o navegador do cliente, pois o outro meio para postar dados de saída é utilizar o método println() do objeto implícito out. Dessa forma, o uso de expressões o

27 25 torna trabalho do desenvolvedor menos dispendioso. A Figura 8 mostra um exemplo de utilização de expressão em que uma mensagem é enviada para o cliente e sua representação equivalente utilizando o método println(). Figura 8: Comparação entre a utilização de uma expressão e o método println() da classe JspWriter Segundo (HALL,?) uma declaração permite a definição tanto de métodos quanto de variáveis que passam a fazer parte da classe Servlet, ou seja, não faz parte do método _jspservice (método invocado sempre que uma página JSP é requerida), diferentemente das variáveis que são declaradas nos scriptlets. Uma declaração de um objeto feita dentro do escopo de um scriptlets é local ao método _jspservice, dessa forma o objeto é instanciado sempre que uma página JSP for requerida, o que não acontece se a variável for declarada como atributo da classe Servlet, e para isso a sintaxe utilizada é: <%! declaração %>. A Figura 9, dividida em partes, demonstra uma declaração de uma variável tanto local ao método _jspservice quanto como atributo da classe Servlet.

28 26 Figura 9: Exemplo de declaração de uma variável inteira tanto no escopo de um scriptlet, quanto como atributo da classe Servlet. Como a declaração da variável inteira contacesso demonstrada na parte 1 da Figura 9 pertence somente ao scriptlet em questão, trata-se então de uma variável local ao método _jspservice, ou seja, essa variável será declarada, inicializada e incrementada sempre que a página JSP for requerida. Dessa forma, a mesma terá sempre o valor 1. Diferentemente da declaração demonstrada na parte 2, pois, como ela é declarada dentro dos elementos <%! e %>, a variável passa a ser então atributo da classe Servlet e o método jspservice apenas modifica o valor da variável, incrementando-a Diretivas De acordo com (HUNTER, 2002), uma diretiva JSP permite que uma página JSP controle certos aspectos de seu Servlet, ou seja, permite ajustar instruções no nível da página, como: inserir arquivos estáticos em um documento JSP e importar um determinado pacote ou classe. Elas são definidas entre as tags <%@ e %>. Na Figura 10 é demonstrada a sintaxe para definição de uma ou várias diretivas.

29 27 Figura 10: Sintaxe de definição de diretivas (HALL,?). Conforme representação na Figura 10, o processo de definição de uma diretiva resume-se em: definir o nome da diretiva que será representada, juntamente com o atributo disponibilizado pela mesma e seu respectivo valor. As principais diretivas são: page e include. A diretiva page permite que sejam definidos atributos que serão aplicados a todo o documento JSP e inclusive a todos os arquivos incluídos estaticamente a essa página. A seguir são demonstrados na Tabela 2 os atributos que podem ser utilizados por essa diretiva Tabela 2: Atributos da diretiva page. Atributo Descrição Exemplo (admita que os atributos abaixo representados estão dentro dos elementos <%@ e %> ). import Permite especificar os pacotes que são importados para serem utilizados no decorrer da página JSP page import= java.util.* contenttype Permite definir como as informações serão enviadas para o cliente, ou seja, se as informações estarão dispostas em texto plano ou texto HTML. page contenttype= text/plain isthreadsafe O valor padrão para essa propriedade é true que indica o processamento normal do Servlet, em que múltiplas requisições são processadas simultaneamente. Se o valor for false indica que o processamento deve ser feito por instâncias separadas do Servlet ou serialmente. page IsThreadSafe= false

30 28 Session O valor padrão true indica que a variável pré-definida session deve ser associada a sessão.se esse atributo tiver com valor falso é indicado que nenhuma sessão será utilizada. page session=false Buffer Especifica o tamanho do buffer para escrita utilizado pelo objeto da classe jspwriter. O tamanho padrão é inferior a 8k. page buffer= 15 autoflush Esse atributo tem a função de indicar se o buffer deve ser esvaziado ou não quando estiver cheio. Para isso o mesmo recebe um valor true ou false. page Autoflush= true errorpage Especifica qual página de erro deve ser executada caso uma exceção seja gerada durante o processamento da página JSP. page errorpage= url iserrorpage Indica se a página corrente pode atuar como página de erro para uma outra página JSP. Tem como valor padrão false. page iserrorpage= true Language Especifica a linguagem que será utilizada. Ainda que a única possível por enquanto seja a Java. page language= Java A diretiva include permite a inclusão de arquivos estáticos em uma página JSP. A sintaxe para utilização da mesma pode ser visualizada na Figura 11. Figura 11: Sintaxe para utilização da diretiva include. 2.3 XML XML é uma linguagem de marcação recomendada pela W3C devido à facilidade de manipulação, criação e estruturação de documentos, além de ser portável, pois um documento XML baseia-se em um documento texto (BRAY, 2004). Linguagens de marcação são linguagens que descrevem a estrutura de um documento, ou seja, como as informações estão organizadas. As linguagens de marcação determinam a forma como o documento está estruturado, e de acordo com essa estrutura,

31 29 determinam como ele será apresentado. Regras explícitas determinam onde estas estruturas começam e terminam através de marcas (tags) que são colocadas antes e depois do conteúdo associado, respectivamente tag de início e tag de fim (LIMA et al, 2003). Os documentos descritos em XML baseiam-se em três componentes distintos: estrutura, conteúdo e apresentação. A estrutura é definida através de um DTD, onde estão contidas as regras que regerão os documentos XML, ou seja, é na definição do tipo do documento que serão especificadas as marcações da linguagem que está sendo desenvolvida (LIMA et al, 2003). Um exemplo de DTD pode ser visto na Figura 12. Verificar possibilidade de alteração Figura 12: Exemplo de um DTD três elementos e um atributo. O conteúdo é onde estão representados os dados, de acordo com a estrutura definida em um DTD ou não. Para definir que um documento XML está correto existem dois conceitos: o de documento bem formado e o de documento válido. Um documento bem formado é aquele em que todas as tags que foram iniciadas foram também finalizadas seguindo uma seqüência lógica. E um documento válido é aquele em que, além de bem formado, também segue corretamente a estrutura definida no DTD. A Figura 13 demonstra um arquivo XML validado de acordo com o DTD da Figura 12. Figura 13: Exemplo de um arquivo XML válido e bem formado de acordo com o DTD da Figura 12. A primeira linha da Figura 13 indica a versão da linguagem XML que será utilizada no documento. Na linha 2, a instrução <DOCTYPE> referencia o DTD responsável pela

32 30 validação do documento XML. Da linha 3 a linha 5 há a representação da estrutura do documento propriamente dita, onde uma turma é formada por um atributo de valor a1 e dois elementos, ano e semestre, com respectivos valores 2004 e 1. Estabelecendo assim uma estrutura hierárquica entre os elementos. Uma outra característica importante da linguagem de marcação XML está no mecanismo de namespace que tem como objetivo possibilitar o compartilhamento de esquemas ou vocabulários Namespaces Namespaces têm como objetivo identificar um conjunto de elementos (esquema), usando prefixos que formam uma nova sintaxe a ser utilizada ao longo de um outro documento qualquer (BRAY, 1999). Com isso, torna-se possível a reutilização desse conjunto de elementos na representação de novos domínios. Essa identificação é feita através do um atributo URI que funciona como um identificador único. Um namespace é declarado usando uma família de atributos reservados (BRAY, 1999). O nome do atributo deve ser xmlns ou ter xmlns: como prefixo. A Figura 14 demonstra um exemplo de declaração de namespace. Figura 14: Exemplo de declaração de um namespace Conforme a representação da Figura 14, na linha 1 é declarado o namespace através da variável (prefixo) <ep> que terá como valor a sintaxe do esquema representado no namespace e há também a representação do atributo <xmlns> seguido de um URI que identifica a localização da sintaxe. Dessa forma, é possível fazer qualquer associação em um determinado documento a um elemento qualquer representado em uma outra localidade, através da variável que recebeu como valor do namespace em questão. A Figura 15 demonstra como seria essa associação.

33 31 Figura 15: Esquema de utilização de um namespace em um documento XML. A Figura 16 mostra como o elemento de um esquema pré-definido pode ser utilizado em um documento XML. Figura 16: Documento XML que utiliza os elementos pré-definidos em um namespace. Na linha 1 da Figura 16 todos os elementos contidos no URI < poderão ser referenciados ao longo de todo o documento XML através do atributo <ep>. As linhas 3 e 4 referenciam os elementos <descricao> e <valor>, contidos no namespace associado ao prefixo <ep>. As seções subseqüentes apresentarão a utilização de namespace declarando e utilizando sintaxe de modelos já estruturados e disponíveis na web. 2.4 Resource Description Framework RDF é uma recomendação da W3C (World Wide Web Consortion) que apresenta uma nova forma de descrição dos dados na web. Para que o modelo de dados RDF possa

34 32 ser representado, foi adotado o conceito de metadados, de forma a possibilitar a descrição de recursos e, com isso, propiciar uma semântica aos mesmos. Esse modelo teve grande aceitação dentre as ferramentas que proporcionam a resolução da interoperabilidade em diversas plataformas devido a sua arquitetura genérica de metadados, permitindo, assim, a descrição dos recursos no contexto web através de padrões de metadados (LASSILA 1999). Como o RDF é um modelo, há a necessidade de utilização de uma linguagem para que o mesmo possa ser representado. Para isso, foi adotada pela W3C a linguagem XML, pois a mesma demonstra algumas facilidades. Dentre elas destaca-se: a facilidade de estruturação dos documentos, pois os elementos que compõem so documentos XML podem ser criados de acordo com que seja necessidade. O modelo RDF encontra-se definido em dois documentos: Resource Description Framework (RDF) Model and Syntax Specification (LASSILA, 1999), que descreve o modelo de dados RDF e Resource Description Framework (RDF) Schema Specification (BRICKLEY, 2000), que descreve as primitivas de modelagem utilizadas para a descrição de um domínio particular de interesse. Estas especificações são descritas na próxima seção Modelo Básico RDF O modelo RDF básico destaca-se pela simplicidade com que busca estruturar o conteúdo de uma página web. Para que o modelo possa ser visualizado e representado, são utilizados grafos rotulados que são construídos com a utilização de três objetos. Esses objetos são descritos a seguir: Resources (recursos): Os recursos representam o universo de objetos que podem ser descritos pelo modelo RDF. Uma página inteira da web ou uma parte dela; uma coleção de páginas; ou um objeto que não é diretamente acessível via web, por exemplo, um livro impresso. Para cada recurso é associado um identificador único (URI) de forma a poder identificá-lo posteriormente. Properties (propriedade): representam os aspectos do recurso a serem

35 33 descritos. Propriedades podem ser visualizadas como atributos (características) de recursos. Também são utilizadas para descrever relacionamento entre recursos. Neste sentido, o modelo de dados RDF assemelha-se ao modelo Entidade-Relacionamento. Cada propriedade tem um significado específico, definem seus valores permitidos, os tipos de recursos que podem descrever, e seus relacionamentos com outras propriedades. Statements (sentenças): representam a relação entre um recurso, uma de suas propriedades e o valor que essa propriedade pode assumir, ou seja, é uma espécie de declaração de um recurso contendo um nome, uma propriedade e um valor agregado. Estas três partes da sentença (tripla) são chamadas respectivamente de predicate (propriedade), subject (recurso) e object (valor de uma propriedade). E a notação utilizada para representação dessa tripla é: (predicate, [subject], [object]). Com isso, as sentenças conseguem representar essa interligação entre o recurso, suas propriedades e seus valores (NOLETO, 2003). A Tabela 3 ilustra a construção de uma sentença que descreve que o recurso, um documento da web e de URI possui uma propriedade cujo valor é uma string (literal) "Priscilla de Mello". Tabela 3: Sentença dividida em partes Subject (Resource) Predicate (Property) Object / Literal "Priscilla de Mello" As sentenças também conferem ao modelo de dados RDF a qualidade de ser compreendida tanto por seres humanos, uma vez que a sentença da Tabela 3 pode ser interpretada como Priscilla de Mello é a criadora do recurso bem como por máquinas, que têm acesso a uma representação formal deste modelo. Além do formato de tripla, conforme ilustra a Tabela 3, o modelo de dados também

36 34 pode ser visualizado na forma de um grafo, que consiste de um conjunto de nós conectados por arcos rotulados, onde os nós representam os recursos web, os arcos representam as propriedades destes recursos e os retângulos representam os literais (String) (MANOLA, 2004). A Figura 17 demonstra a sentença da Tabela 3 nas formas de um grafo e de uma tripla respectivamente na parte 1 e 2. Figura 17: Representação de uma sentença: grafo e tripla Agora, considerando o caso em que há a necessidade de representar características mais específicas sobre o criador desse recurso. O indivíduo cujo nome é Priscilla de Mello com <mello@ulbra.edu.br> é a criadora do recurso A intenção dessa sentença é fazer com que o valor da propriedade Creator seja uma entidade estruturada. Em RDF uma entidade é representada por outro recurso. A sentença acima não nomeia o recurso, portanto a Figura 18 demonstra um diagrama tendo um recurso representado por uma elipse vazia.

37 35 Figura 19: Propriedade com valor estruturado usando um nó vazio Para que possa ser associado um URI ao recurso anônimo ramificado poderia ser utilizado um atributo identificador <ID> advindo de uma base conforme exemplificado na Figura 20. Figura 20: Propriedade com valor estruturado Com isso, o modelo RDF permite que um dado recurso possa abrir novas ramificações, especificando o modelo num contexto geral de forma mais detalhada. Ou seja, a indicação do arco criador aponta para um novo recurso que, representado por um

38 URI, faz junção através de novos arcos de propriedades com os seus respectivos objetos XML como linguagem de Especificação da Sintaxe RDF Como RDF é um modelo, faz-se necessário o uso de uma linguagem para sua representação A Figura 21 exemplifica o padrão utilizado para descrição do formato RDF. Figura 21: Formato de representação de dados em RDF De acordo com a Figura 21 inicialmente (linha 1) define-se o tipo da classe que será descrita. Depois é atribuído um valor ao atributo <rdf:id> como forma de identificação do recurso e, após isso (linha 5 a 7), são inseridas as propriedades e os respectivos valores, descrevendo, dessa forma, as características do recurso. Para que o modelo possa ser representado, a XML dispõe de duas sintaxes: serializada e abreviada. Os exemplos utilizados nos tópicos e são baseados na sentença da Figura 22. Figura 22: Sentença em forma de tripla Sintaxe Serializada

39 37 Essa forma de representação permite expressar toda a potencialidade do modelo RDF. A Figura 23 ilustra como a sentença pode ser representada de forma serializada em XML. Figura 23: Serialização em XML de um recurso RDF Nas linhas 2 e 3 são declaradas as variáveis de namespaces RDF: e dc, que utilizadas no documento XML especificarão a localização de um novo vocabulário. Na linha 6 há a declaração do atributo <about> com valor que determina o URI do recurso a ser descrito. Em seguida na linha 7 há a declaração da tag de abertura dc:creator, que indica quem é o criador do recurso, ou seja, uma String de valor Priscilla de Mello. Com isso, tem-se a descrição de um recurso com algumas informações relevantes para o entendimento de sua semântica Sintaxe Abreviada Já essa forma de representação inclui construtores adicionais de tal forma que o modelo RDF possa ser representado de maneira mais compacta. A Figura 24 ilustra a representação da sentença utilizando a serialização em XML de forma abreviada. Figura 24: Serialização em XML de um recurso RDF de forma abreviada

40 38 A sentença descrita na Figura 24 é equivalente à representada na Figura 23, pois mesmo que sejam descritas de maneiras diferentes, ao final provocarão o mesmo resultado a uma aplicação Primitivas do modelo As propriedades de um objeto têm a responsabilidade de descrever características adicionais sobre o mesmo, ou seja, são qualificados valores às propriedades, nomeando-as com unidade de medidas de um vocabulário qualquer (MARINO, 2001). Para que os recursos do modelo de dados RDF possam ser descritos de forma clara e objetiva, foram criadas algumas definições que serão abordadas nos tópicos seguintes O Elemento <rdf:rdf> Para que um documento RDF com mais de uma sentença seja descrito, é obrigatória a utilização do elemento <rdf:rdf>. A Figura 25 mostra um exemplo de um documento RDF com apenas uma sentença, dessa forma o elemento <rdf:rdf> se torna opcional. Figura 25: Representação de uma sentença sem o elemento <rdf:rdf> Descrição (atributo Description / <rdf:description>) O atributo <rdf:description> identifica o sujeito (subject) de uma sentença. Esse elemento pode conter alguns elementos e/ou atributos: URI do recurso que está sendo descrito, representação das propriedades, sentenças aninhadas, além de atributos e recursos

41 39 anônimos (AHMED, 2004). Dentre os atributos existentes para descrição do elemento <rdf:description>, os mais importantes são: <rdf:about>, <rdf:id>, <rdf:type>. A Figura 26 demonstra a representação desse elemento. Figura 26: Representação do elemento <rdf:description> Conforme pode ser visualizado na linha 07, o elemento <dc:creator> pode ser entendido como um atributo de <rdf:description> ou seu elemento filho, de acordo com a representação hierárquica de um documento XML Identificação sobre (atributo about / <rdf:about>) O atributo <rdf:about> tem como conteúdo um URI que é utilizado como um identificador único de recursos e propriedades. Quando em um dado recurso diz-se que o atributo <rdf:about> possui um determinado URI, isso não implica dizer que o recurso ou propriedade esteja naquela localidade. Os URIs para as sentenças podem ser relativos ao documento que contém as sentenças, ou seja, um recurso pode ser referenciado mesmo que esteja contido em outro documento. Figura 27: Representação do elemento <rdf:about>

42 Identificação (atributo ID / <rdf:id>) Assim como o atributo <rdf:about>, o atributo <rdf:id> tem a função de identificar um recurso. Com a diferença que o atributo <rdf:id> permite a criação de um recurso local sobre o qual podem ser feitas novas sentenças, além de permitir também a utilização da sintaxe abreviada, ou seja, permite utilizar URI abreviado caso o recurso que esteja sendo referenciado faça parte do documento que contém o metadado. É importante ressaltar que, os atributos <rdf:about> e o <rdf:id> são mutuamente exclusivos, ou seja, somente um pode ser utilizado no elemento <rdf:description>. Figura 28: Representação do atributo <rdf:id> Tipo (atributo type / <rdf:type>) Esse atributo permite indicar que o referido recurso é de um tipo específico. Os tipos permitidos são: numérico, texto ou um tipo de um recurso já existente. Quando o atributo <rdf:type> é utilizado, uma relação binária entre dois elementos é estabelecida. Essa relação é análoga ao mecanismo de instanciação da orientação a objetos. A Figura 29 mostra essa relação.

43 41 Figura 29: Grafo da definição de um tipo A Figura 30 ilustra a representação do atributo <rdf:type> serializada em XML. Figura 30: Representação do atributo <rdf:type> Na linha 6 é utilizado o caractere #, que funciona como um delineador ou indicador de fragmento e, segundo (MARINO, 2001), tem como função referenciar o aparecimento de um componente dentro do recurso. Com isso, todas as propriedades que referenciam o recurso estabelecem um relacionamento com a parte referenciada. Uma segunda forma de representação do atributo <rdf:type> é utilizá-lo como atributo do elemento <rdf:description>. A Figura 31 ilustra como seria essa representação. Figura 31: Representação do atributo <rdf:type> como atributo do elemento <rdf:description>

44 42 Além das duas formas de representação supracitadas, há uma terceira, essa utiliza o mecanismo de namespace. A Figura 32 demonstra como é essa representação. Figura 32: Representação do atributo <rdf:type> com o mecanismo de namespace Conjunto ou lista (Containers) Os containers são coleções utilizadas para representar conjunto de recursos ou literais. Por exemplo, para demonstrar que um determinado trabalho foi criado por mais de uma pessoa, ou então dizer que uma lista de estudantes pertence a um curso. Para que essas listas possam ser representadas, o modelo RDF provê três tipos de coleções: bag, sequence e alternative Coleção Bag (<rdf:bag>) A coleção Bag é utilizada para declarar propriedades com múltiplos valores, não importando a ordem em que os valores são apresentados. A Figura 33 demonstra a representação de uma coleção utilizando a lista Bag.

45 43 Figura 33: Representação do elemento bag Nas linhas 8, 9 e 10 é utilizado o elemento <rdf:li> que é responsável por representar os membros da coleção correspondente Coleção Sequence (<rdf:seq>) Essa coleção possui as mesmas funções do elemento Bag no que diz respeito à representação de múltiplos valores para uma determinada propriedade e diante da possibilidade de a coleção assumir valores duplicados. A diferença é que os elementos representados na lista devem estar representados em ordem ascendente. A Figura 34 ilustra a representação do elemento Sequence. Figura 34: Representação do elemento Sequence Coleção Alternative (<rdf:alt>)

46 44 Assim como as demais listas acima, a coleção alternative permite a representação de objetos ou recursos. As diferenças são que: essa permite declarar apenas um valor a uma propriedade e não permite valores duplicados. A Figura 35 ilustra a representação do elemento Alternative. Figura 35: Representação do elemento Alternative Comparação entre as Coleções Após a explanação das coleções que o modelo RDF dispõe pode ser realizada uma breve comparação entre as mesmas, conforme a Tabela 4 ilustra. Tabela 4: Comparação entre os tipos de Coleções providas pelo modelo RDF (BRAGANHOLO, 2001). Ordenação Duplicação Propriedade Multivalorada Bag Não Sim Sim Sequence Sim Sim Sim Alternative Não Não Não O Mecanismo de Reificação Para que as características de um determinado recurso possam ser descritas, baseadas na arquitetura RDF, sempre é estabelecida uma relação binária (propriedadevalor). Esse valor pode ser tanto um literal quanto um outro recurso. Quando esse valor se

47 45 trata de um recurso obtém-se então o mecanismo de reificação, já que a descrição final do recurso terá como resultado uma sentença sobre outra sentença. Para que a reificação possa ser representada, o modelo RDF provê quatro propriedades: subject: identifica o recurso que está sendo descrito pela sentença modelada; predicate: identifica a propriedade que está sendo descrita pela sentença modelada; object: identifica o valor da propriedade na sentença modelada; type: descreve o tipo do novo recurso. Todas as sentenças reificadas são instâncias de <rdf:statement>. A Figura 36 ilustra a reificação de uma sentença RDF. Figura 36: Representação de um código RDF reificado A Tabela 5 apresenta o resultado obtido através do código demonstrado na Figura 36. Duas sentenças são demonstradas: a segunda, que apresenta a reificação, é representada por < que possui o predicado <creator> e um objeto < (primeira sentença), que possui duas propriedades nome e , cujo os valores são respectivamente Priscilla de Mello e mello@ulbra-to.br Tabela 5: Resultado da sentença utilizando uma reificação Sentença Sujeito Predicado Objeto

48 46 Priscilla de Mello 1 Nome 2 creator

49 RDF Schema RDF Schema estende a potencialidade do modelo RDF básico, através do uso de propriedades que proporcionam formas de interligar os recursos que estão sendo descritos e, com isso, propiciar uma semântica ao esquema representado (BRICKLEY, 2000). A partir disso, é permitida a criação de vocabulários representados por classes e propriedades que tornam possível o seu reaproveitamento em outros modelos. A parte 1 da Figura 37 demonstra a representação de um esquema RDF no formato gráfico. Figura 37: Representação gráfica de uma esquema e sua utilização em um documento RDF Conforme a ilustração da parte 2 da Figura 37, um documento RDF qualquer pode ser originado tendo como base a estrutura representada no esquema pré-definido na parte 1. Nesse caso, foi gerado um documento que descreve as características de um cachorro cujo nome é Bellone que tem como cor e raça os valores Preta e Pastor Belga, respectivamente. Para que haja um entendimento de como um esquema RDF possa ser representado, nas próximas seções serão feitas explanações dos principais elementos que compõem um

50 esquema RDF (classes e propriedades) e das normas que os regem. A Figura 38 representa a hierarquia de classes do esquema RDF. 48 Figura 38: Hierarquia de classes do modelo RDF Schema (BRICKLEY, 2000). Para a definição de classes e propriedades em um esquema RDF é utilizado o modelo padrão RDF/XML. Esse modelo é demonstrado na Figura 39. Figura 39: Modelo RDF/XML utilizado para definição de classes e propriedades Na linha 2, através do atributo <rdf:id>, é definida a classe que estará sendo descrita. Na linha 3 é declarada a variável que conterá a namespace com a definição do modelo RDF, enquanto na linha 4 é definido o URI do esquema representado. Nas linhas 5 e 6 são definidas as propriedades da classe que está sendo descrita, sendo que as propriedades podem ser tanto um recurso quanto um literal, linhas 5 e 6, respectivamente.

51 Classes Classe é um modelo que pode ser originado a partir de uma descrição genérica de recursos individuais pertencente a um dado universo. Após a definição de uma classe, com a utilização do conceito de heranças, subclasses podem ser geradas, que passarão a conter todas as características referentes à superclasse, além das características inerentes a ela. Devido a isso, uma hierarquia é criada entre as classes representadas no esquema, possibilitando assim um reuso de definições já existentes. A Figura 40 demonstra o processo de definição de classes. Figura 40: Processo de definição de classes Conforme representação na parte 1 da Figura 40, um conjunto de classes e propriedades, ou seja, o esquema propriamente dito, é definido dentro do elemento <rdf:rdf>. Nas partes 3 e 4 são definidas as classes que estarão sendo descritas, cachorro e vertebrados respectivamente, através do elemento <rdfs:class>. E por fim, na parte 5 o elemento <rdfs:subclassof> determina que a classe cachorro herda todas as características da classe dos vertebrados. Esses elementos serão abordados de forma mais clara nas seções subseqüentes <rdfs:resouce>

52 50 Um esquema RDF corresponde a um conjunto de recursos oriundos de um domínio específico. E para que esse conjunto possa ser representado, tem-se que partir de uma classe genérica, de forma que a mesma comporte todas as outras classes e subclasses definidas no esquema. Figura 41: Representação gráfica de um esquema A Figura 41 representa um esquema hierárquico de uma turma onde a mesma possui um professor em um dado ano e semestre. Nesse caso o recurso que herdará todas as características da classe <rdfs:resource> seria a turma, pois a mesma é entendida como o recurso genérico do esquema em questão. A Figura 42 representa parte do esquema da Figura 41 serializado em XML. Figura 42: Parte do esquema da Figura 41 serializado em XML <rdfs:class> O elemento <rdfs:class> é utilizado para definição de classes. Ele possui um atributo <rdf:id> que tem a função de identificar a classe que está sendo descrita. Para a

53 51 descrição de uma classe podem ser utilizadas duas sintaxes diferentes, ressaltando que essas sintaxes, mesmo sendo descritas de formas diferentes, provocam ao final o mesmo resultado. A Figura 43 representa essas sintaxes. Figura 43: Sintaxes da criação de uma classe Conforme pode ser observado na pate 2 da Figura 43, uma classe pode ser definida através da utilização do elemento <rdf:type> com valor < que indica que o recurso que está sendo descrito é uma classe <rdfs:property> Esse é o elemento utilizado para definir propriedades, ou seja, representa os recursos que são propriedades RDF de um outro recurso. Duas sintaxes diferentes podem ser utilizadas para que as mesmas possam ser descritas e só assim interligadas a uma classe. A Figura 44 representa essas sintaxes.

54 52 Figura 44: Sintaxes de definição de uma propriedade e seu relacionamento com uma classe Em ambas definições é utilizado o elemento <rdf:id> como forma de identificar a propriedade que está sendo descrita. Na sintaxe demonstrada na parte 1 da Figura 44 é dito que uma propriedade estará sendo descrita através da classe <rdf:property>, enquanto a sintaxe representada na parte 2 demonstra que a mesma propriedade pode ser criada através de um recurso, onde o elemento <rdf:type> tem a responsabilidade de representar o que está sendo descrito, que pode ser tanto uma propriedade (parte 2 da Figura 44) quanto uma classe (parte 1 da Figura 44) Propriedades As propriedades expressam características ou aspectos que uma dada classe pode assumir, além de utilizarem também mecanismo para expressar relacionamentos entre as classes. A Figura 45 representa o processo de definição de uma propriedade.

55 53 Figura 45: Definição de Propriedade O modelo RDF básico provê do elemento <rdf:property> como forma de representar uma propriedade, enquanto que o RDF Schema dispõe de dois elementos <rdfs:domain> e <rdfs:range> como forma de interligar uma propriedade a uma referida classe. Com isso, conforme representação na Figura 45 da linha 5 a 8, uma propriedade raça do tipo literal é definida como característica da classe Cachorro <rdfs:subclassof> Esse elemento determina a relação entre classes (subclasse e superclasse). Se for definido um elemento <rdfs:subclassof> em uma classe subtende-se que um relacionamento é estabelecido entre uma subclasse e uma superclasse (herança simples). Agora, caso mais de um elemento <rdfs:subclassof> esteja definido em determinada classe, é estabelecido o conceito de herança múltipla. A Figura 46 está dividida em 2 partes. Na primeira parte é estabelecido o conceito de herança simples, na segunda, é demonstrado o de herança múltipla.

56 54 Figura 46: Exemplo do elemento <rdfs:subclassof> Na parte 1 da Figura 46, é dito que a classe Cachorro além de possuir as características inerentes a ela, também possui as características da classe dos Vertebrados. A parte 2 da figura mostra o conceito de herança múltipla, pois a classe Cachorro herda as características tanto da classe Vertebrados quanto dos Mamíferos, ou seja, um Cachorro se enquadra em ambas as classes <rdfs:subpropertyof>

57 55 O elemento <rdfs:subpropertyof> determina que uma propriedade é uma especialização de uma outra. Isso implica dizer que é estabelecida uma relação hierárquica entre as propriedades. Para demonstração desse elemento será utilizado o seguinte exemplo: a distância oficial entre a cidade de Palmas e Paraíso é de 62km, enquanto a estimada é de 59km. Para o exemplo em questão, a unidade km se trata de uma propriedade, assim como o valor oficial e o estimado, sendo que essas distâncias (oficial e estimada) herdarão as características da propriedade km. A Figura 47, dividida em partes, demonstra essa relação hierárquica entre as propriedades tanto graficamente quanto serializada em RDF/XML. Figura 47: Hierarquia de propriedades a partir da utilização do elemento <rdfs:subpropertyof> <rdfs:range> O elemento <rdfs:range> é uma instância da classe <rdfs:constraintproperty> que tem como funcionalidade especificar que valores uma propriedade pode assumir. Uma propriedade admite apenas um <rdfs:range>, pois a mesma pode ser de apenas um tipo, ou seja, não pode ser multivalorada, por exemplo, não pode assumir valores tipo inteiro e literal simultaneamente. Para

58 representação desse elemento, considerando o exemplo em que se deseja representar uma propriedade km que terá como valor um objeto do tipo inteiro. 56 Figura 48: Representação do elemento <rdfs:range> <rdfs:domain> Assim como o <rdfs:range>, o <rdfs:domain> também é instância da classe <rdfs:constraingproperty>, pois também tem a função de restringir, só que nesse caso especifica a qual classe uma propriedade está agregada, diferentemente do <rdfs:range> que identifica que valor uma propriedade pode assumir. Para exemplificação desse elemento a Figura 48 representa o exemplo em que uma propriedade km do tipo inteiro relaciona-se com a classe distância. Figura 49: Representação do elemento <rdfs:domain> Representação de uma taxionomia serializada em RDF/XML Após ter sido feita uma explanação a respeito dos principais elementos que compõem o modelo RDF Schema, uma taxionomia pode ser representada a partir da escolha de um domínio. A Figura 49 representa a criação de uma taxionomia serializada em RDF/XML tendo como base o domínio Reino Animal representado na Figura 37.

59 57 Figura 49: Representação de uma taxionomia em RDF/XML A partir do esquema serializado em RDF/XML, representado na Figura 49, que descreve um domínio referente ao reino animal, é possível a criação de sentenças que descrevam recursos pertencentes a esse domínio.

60 API Jena Jena é uma API (conjunto de classes) Java, desenvolvida pela HP, que possibilita a construção de aplicações para web semântica. Essa API propicia um ambiente para trabalhar com RDF, RDFS e OWL (MCBRIDE, 2004). Dentre todos os recursos oferecidos, serão mostrados aqui somente alguns conceitos fundamentais para a criação e manipulação de grafos RDF. Para isso a API disponibiliza algumas classes que tornam possível a manipulação de recursos, propriedades e literais. As interfaces que representam os recursos, propriedades e literais são respectivamente chamadas de: Resource, Property e Literal. Na Jena um grafo é chamado de modelo, representado pela interface Model. O processo de geração de documentos RDF a partir da utilização da API Jena é feito da seguinte forma: Passo 1: Inicialmente instancia-se um objeto da classe ModelMem, que conterá um grafo vazio e que estará disponível apenas em memória, ou seja, existirá apenas durante o processo de execução do programa. Passo 2: Conforme citado no Passo 1, o grafo criado, ainda vazio, precisa de recursos para que seja possível a manipulação do modelo RDF. Para isso o mesmo pode ser feito através do método createresource disponibilizado pela classe ModelMem. Passo 3: Após a criação do recurso, faz-se necessária a inserção de propriedade(s) no mesmo, e com isso é(são) propiciada(s) característica(s) ao recurso criado. Seguindo os passos (1, 2 e 3) anteriormente mostrados, serão feitas demonstrações de exemplos de códigos Java, que terão sempre ao final de sua execução a geração de um documento RDF.

61 59 Figura 50: Exemplo de criação de um documento RDF simples Da linha 01 até a linha 03 são importadas as classes que serão utilizadas no decorrer da implementação (código Java). Na linha 16 é criado um modelo vazio, que passará a não ser vazio a partir das linhas 17, 18 e 19, onde são criados e adicionados ao modelo: um recurso < e uma propriedade <nome>, cujo valor é um literal Priscilla de Mello. Ao final, na linha 20, o modelo criado foi impresso a partir da utilização do método write do objeto objmodelo. Figura 51: Resultado obtido a partir da execução do código demonstrado na Figura 50. No exemplo demonstrado na Figura 50, foi criada uma tripla: recurso, propriedade com seu respectivo valor (um literal). Agora, considerando que a sentença criada seja de um tipo específico, o código da Figura 52 mostra qual seria o procedimento necessário para definição de tipagem.

62 60 Figura 52: Exemplo de definição de tipagem para um dado recurso A diferença do código apresentado na Figura 50 para o demonstrado na Figura 53, é que no primeiro (Figura 50) durante a criação do recurso, linha 17, é passada uma String por parâmetro, determinando assim o URI do mesmo, enquanto o segundo (Figura 52) é passado por parâmetro um outro recurso, dessa forma é dito que o recurso que está sendo criado é do tipo do que foi passado por parâmetro, nesse caso em específico, tipo pessoa. A Figura 53 mostra o documento RDF gerado a partir da execução do código demonstrado na Figura 52. Figura 53: Resultado obtido a partir da execução do código demonstrado na Figura 52. No exemplo subseqüente, Figura 54, é demonstrado um código Java que cria um documento RDF contendo um recurso que, além de possuir uma propriedade com um valor

63 literal, possui também uma segunda propriedade (endereco) contendo um recurso como valor. Dessa forma o resultado final obtido será uma sentença sobre outra sentença. 61 Figura 54: Criação um recurso com uma propriedade tendo como valor um outro recurso A Figura 55 demonstra o documento RDF gerado a partir da execução do documento Java demonstrado na Figura 54. Figura 55: Resultado obtido a partir da execução do código demonstrado na Figura 54.

64 62 Tendo como base os exemplos demonstrados anteriormente, torna-se possível então a criação de documentos RDF a partir de quaisquer dados de entrada. É importante ressaltar que os documentos criados estão armazenados apenas na memória e, caso haja necessidade de guardar esses documentos, os mesmo devem ser armazenados fisicamente. 2.6 Considerações Para que pudesse haver um melhor entendimento a respeito da tecnologia JSP, foi mostrado inicialmente na seção 2.1, o que é, e como é o funcionamento de um Servlet, que é o fundamento básico para a tecnologia JSP, já que JSP é uma extensão da tecnologia Servlet. Logo em seguida, na seção 2.2, foram mostrados alguns conceitos da tecnologia JSP, que vão desde a sua importância, funcionamento básico, demonstração de expressões, declarações e diretivas, até a demonstração dos objetos pré-definidos (objetos utilizados para desenvolvimento de páginas web). Como RDF é um modelo que utiliza a linguagem XML para ser representado, na seção 2.3 é feita uma breve explanação a respeito dos conceitos da linguagem de marcação XML. A XML também dispõe de um recurso importantíssimo que possibilita o compartilhamento de recursos: namespace. Na seção 2.4 são demonstrados os conceitos do modelo RDF através de exemplos elucidativos, que buscam, assim, fazer com que o leitor compreenda quais são os recursos oferecidos pelo modelo e a partir disso criar documentos RDF. E, por fim, na seção 2.5, dentre os diversos reursos oferecidos pela API Jena, foi demonstrado, através de exemplos, como é o procedimento de criação (implementação) de um documento RDF e os resultados finais obtidos.

65 63 3 MATERIAIS E MÉTODOS Para o desenvolvimento do referido trabalho foram utilizados diversos recursos bibliográficos, de hardware e software, que aliados às orientações permitiram a finalização do mesmo. 3.1 Local e Período Este trabalho foi desenvolvido durante o primeiro semestre de 2004, como parte da disciplina Prática em Sistemas de Informação I. Os locais utilizados para sua elaboração foram os laboratórios de informática do curso de Sistemas de Informação, sendo que os mais utilizados foram o Laboratório de Inteligência Computacional (Linc) e Núcleo de Desenvolvimento de Software (NDS) do Centro Universitário Luterano de Palmas. Bem como, destacando também, a utilização de um computador pessoal. 3.2 Materiais Os recursos utilizados para o desenvolvimento do trabalho foram disponibilizados pelo próprio curso Sistemas de Informação do CEULP/ULBRA em seus laboratórios, tais como hardware e software licenciados. As demais ferramentas free foram adquiridas via Internet.

66 Hardware Pentium III, 750 Mhz e 128 Mb de RAM (Disponível no laboratório); Pentium IV, 2.4 Ghz e 256 Mb de RAM (Disponível no laboratório); Software Microsoft Windows 2000 Professional; Microsoft Office 2000 Professional; Internet Explorer 6.0; Acrobat Reader 6.0; Corel Draw 11 Macromedia Fireworks MX Sun WebServer 6.1 Máquina Virtual Java (j2sdk ) Fontes Bibliográficas Livros Dissertações de Mestrados; Trabalhos de Conclusão de Curso; Publicações Científicas; Artigos; Site da W3C (World Wide Web Consortium) (W3C, 2004); Sites diversos. 3.3 Metodologia Diversas pesquisas foram realizadas, de maneira que permitisse oferecer uma sustentação teórica necessária para a conclusão do presente trabalho. Assim, foram

67 65 abordados conceitos e técnicas alusivas ao escopo do trabalho, para que fosse possível desenvolver um sistema que possibilitasse a descrição de imagens, como forma de concretização dos conceitos explanados na Revisão de Literatura. Foi estabelecido também um cronograma de estudos para o desenvolvimento do referido trabalho, sendo que o mesmo é apresentado na Tabela 6.

68 66 Tabela 6: Cronograma de atividades Data 22/3/ /3/2004 5/4/ /4/ /4/ /4/2004 3/5/ /5/ /5/ /5/ /5/2004 7/6/2004 Atividade Aprendizado sobre RDF: o que é, qual sua importância, elementos disponíveis para criação de um documento RDF. Baseado na fundamentação teórica: construir documentos RDF para esclarecer os conceitos estudados anteriormente. Depois de fazer um estudo dos conceitos básico do modelo RDF, fazer a documentação (revisão de literatura) sobre o RDF e RDF Básico, além da linguagem XML que serializa o modelo. Aprendizado de RDF Schema: realizar pesquisas e leitura do material fornecido pelo site da W3C e também de livros e dissertações. E, a partir disso, será utilizado esses conceitos para criação de um esquema que represente o domínio do referido trabalho. Tendo como base os conceitos adquiridos até o momento, será feita a revisão de literatura sobre RDF Schema. Aprendizado sobre a tecnologia JSP: processamento de dados de formulários, interação com o usuário, manipulação de sessão, o que é, e para que serve uma diretiva, expressões e utilização dos objetos implícitos. Fazer a devida documentação a respeito dos referidos conceitos. Aprendizado sobre API Jena (API Java desenvolvida pela HP para manipulação dinâmica de documentos RDF): qual sua importância, para que serve, e como deve ser utilizada, sendo que para isso devem implementados exemplos de códigos Java que criem documentos RDF. Realizar também a devida documentação a respeitos dos recursos oferecidos pela mesma para manipulação de documentos RDF. Definir como será o esquema de funcionamento do sistema, ou seja, etapas para descrição de uma determinada imagem. Definir como será a forma de armazenamentos dos documentos RDF, para que, num processo futuro, o processo de busca possa ser facilitado. Definir a interface: a interface deverá ser preparada para suportar a descrição de documentos de acordo com o esquema previamente definido. Depois de todos os conceitos adquiridos anteriormente, o sistema deverá ser então implementado. Fazer a devida documentação a respeitos dos resultados obtidos, os testes na aplicação desenvolvida e correções no relatório final.

69 67 4 RESULTADOS E DISCUSSÃO A presente seção tem o objetivo de, a partir dos conceitos apresentados anteriormente, mostrar um sistema que foi desenvolvido para construção de documentos RDF que descrevam imagens referentes ao âmbito institucional, no caso em questão: CEULP/ULBRA. O sistema foi implementado em JSP, sendo que, o que motivou a escolha dessa tecnologia, foi o fato de a mesma ser uma tecnologia para web, além de trabalhar com a linguagem Java, pois há uma API Java disponível para manipulação de documentos RDF. Para tanto, foi desenvolvido um esquema do sistema, além de um conjunto de regras estabelecidas para descrição das imagens, que serão apresentadas nas seções seguintes. 4.1 O Sistema Para que haja um melhor entendimento, por parte do leitor, foi desenvolvida uma representação gráfica dos passos necessários para a descrição das imagens, que vão desde a digitalização até a descrição da mesma, através de um documento RDF, de forma transparente ao usuário. Transparente, no sentido de que o mesmo não conhece a estrutura interna de criação e armazenamento dos documentos RDF responsáveis pela descrição das imagens.

70 68 Figura 56: Etapas possíveis para descrição das imagens. De acordo com a Figura 56, inicialmente um usuário pode digitalizar a imagem (passo 1), e com isso disponibilizá-la em algum meio físico de armazenamento (passo 2). A partir da imagem armazenada, o usuário, através do browser pode acessar o sistema que foi desenvolvido e informar os dados referentes à imagem em questão, objetivando assim descrevê-la (passo 3). A partir da confirmação do usuário para a respectiva descrição (passo 4), a imagem é então enviada e armazenada no servidor, juntamente com a descrição equivalente, ou seja, o documento RDF.

71 4.2 RDF Schema na Criação de um Conjunto de Regras para Descrição das Imagens 69 Baseado nos conceitos apresentados na seção 2.4.3, sobre RDF Schema, que possibilita a representação de vocabulários diante da especificação de um domínio, foi desenvolvido um esquema que representa as regras de criação de um documento RDF. A Figura 57 demonstra esse esquema serializado em RDF/XML. Figura 57: Esquema que representa as imagens referentes ao domínio Instituição de Ensino Superior.

72 70 Seguindo a representação do esquema serializado em RDF/XML (Figura 57), das linhas 04 a 07 está sendo definida a classe maior, que herda todas as características de Resource, ou seja, todas as ramificações do esquema partirão dessa classe, que é a genérica. Para que possa haver um vínculo entre a figura (.jpeg) e o documento RDF que está descrevendo-a, foi criada uma propriedade localfisico, que armazenará o caminho da imagem equivalente, conforme pode ser observado das linhas 08 a 12 da Figura 57. As imagens podem pertencer a dois âmbitos na instituição: o acadêmico e o administrativo. Para tanto, foram criadas, respectivamente as classes Curso (linha 13 a 16) e setoradministrativo (linha 27 a 30). O que há nos cursos, tanto de graduação, quanto de pós-graduação, está sempre ligado às atividades de ensino, pesquisa e extensão. Devido a isso, foi criada uma propriedade atividadenocurso que é utilizada para representar tais atividades, conforme pode ser visualizado na linha 22 a 26. Após a determinação da atividade, a imagem pode estar ligada a uma pessoa ou a uma estrutura física. Para os casos em que seja uma pessoa, foi criada uma classe Pessoa (linha 36 a 40), sendo que essa pessoa pode ser de um dos três tipos: docente, discente e funcionário administrativo. Por isso, da linha 41 a linha 45 foi criada uma propriedade tipopessoa que se relaciona com Pessoa. Se a pessoa for do tipo docente, estará implícito que é um professor, e que também poderá possuir um cargo (linha 46 a 50), assim como, um funcionário administrativo. Da mesma forma, os discentes são compreendidos, com a diferença que os mesmos não terão um cargo, porém (em alguns casos) exercerão uma determinada função (linha 51 a 55) na instituição, tais como: estagiário ou monitor. Se a imagem for uma estrutura física, a mesma possuirá apenas um valor literal, que representará uma descrição (linha 31 a 35). Assim como a propriedade pessoa está relacionada com o setor acadêmico, ela também se relaciona com setor administrativo (linha 39), com a diferença que a última citada possui uma propriedade cargo, diferentemente do acadêmico, em que poderia possuir um cargo ou uma função. Da mesma forma, a propriedade que determina a descrição da estrutura física (estruturafisica) também está agregada tanto ao setor acadêmico quanto ao administrativo (linha 34). A Figura 58 representa o esquema serializado em RDF/XML da Figura 58 no formato de grafo.

73 71 Figura 58: Grafo do esquema da Figura 57. Segundo (NOLETO, 2003), um grafo RDF Schema (Figura 58) serve para visualizar e auxiliar na definição de um modelo em que as classes (recursos) podem ser representadas por nós, as propriedades pelas arestas e o tipo que essa propriedade pode assumir é representada por um retângulo. Assim, através da aresta, pode-se fazer uma ligação entre as classes representando uma relação de hierarquia, uma ligação entre classe e tipo da propriedade, para determinar o tipo que uma propriedade pode assumir. 4.3 Representação do Vocabulário em uma Classe Java De acordo com os exemplos demonstrados na seção 2.5, os recursos com suas respectivas propriedades são criados e armazenados em um modelo na memória. Isso pode ser observado como um problema, tendo em vista a portabilidade. Dessa forma, torna-se inevitável a duplicação do modelo, haja vista a inexistência de um prefixo de namespace dinâmico de forma a tornar ineficaz a reusabilidade do código em outros documentos (NOLETO, 2003). Para isso, segundo representação da Figura 59, uma classe Java foi

74 72 criada com o intuito de representar o vocabulário criado e serializado em RDF/XML (Figura 57), e a partir dessa representação o cliente (desenvolvedor) pode reutilizar o esquema criado de acordo com as suas necessidades. Figura 59: Criação de um vocabulário em uma classe Java: utilizando a API Jena. Conforme pode ser observado (Figura 59), inicialmente (linha 01) é definido a que pacote pertence a classe que está sendo implementada, logo em seguida (linha 12) é instanciada uma variável do tipo String que contém a namespace à qual os recursos e as

75 73 propriedades serão posteriormente associados. Da linha 17 a 41 é feita a declaração das propriedades e dos recursos, e um pouco mais adiante, linha 47 a 59, é feita a associação dos recursos e das propriedades anteriormente declarados a namespace do referido vocabulário. 4.4 Utilizando o Vocabulário representado em uma Classe Java para Criação de um Documento RDF. Com o intuito de demonstrar a utilização da classe Java, criada na seção 4.3, para representação de um vocabulário, a Figura 60 apresenta um código que terá ao final de sua execução a criação de um documento RDF.

76 74 Figura 60: Código Java de criação de um documento RDF a partir do esquema representado na seção 4.3. De acordo com o código representado na Figura 60, na linha 04 é importada a classe que contém a definição do vocabulário e, a partir disso, o esquema pertinente a ela poderá ser utilizado durante o processo de implementação. Conforme pode ser observado da linha 32 a 37, um recurso e algumas das propriedades definidas anteriormente estão sendo utilizados para a criação de um novo documento RDF. A Figura 61 apresenta o documento RDF gerado a partir da execução do código demonstrado na Figura 60.

77 75 Figura 61: Documento RDF gerado a partir da execução do código Java demonstrado na Figura Processo de Armazenamento das Descrições das Imagens De acordo com a representação do esquema, na seção 4.2, uma propriedade localfisico foi criada para estabelecer um vínculo entre a imagem (figura.jpeg) e sua descrição equivalente (.rdf). Além disso, foi criada uma hierarquia de pastas, obedecendo a estrutura estabelecida pelo esquema, com o objetivo de estabelecer uma organização para o armazenamento dos documentos RDF. A estrutura hierárquica pode ser observada na Figura 62.

78 76 Figura 62: Estrutura hierárquica de armazenamento dos documentos RDF. Conforme foi dito anteriormente, a estrutura hierárquica das pastas foi criada de acordo com a definição do esquema, por isso, pode ser observado que há duas pastas genéricas: curso e setoradm. Na pasta curso há mais um nível, em que o mesmo é subdividido em graduaçao e posgraduacao, sendo que ambos contêm seus respectivos cursos e cada um dos cursos contém mais um nível: estruturafisica e pessoa. O nível setoradm é subdividido apenas em estruturafisica e pessoa.

79 77 Para que a aplicação, num processo futuro, não tenha a necessidade de pesquisar em todos os documentos e de conhecer a estrutura física que armazena os documentos RDF, foi criado um documento RDF intermediário, que tem a responsabilidade de guardar os nomes dos documentos criados, pertinentes a cada uma das ramificações da estrutura hierárquica. Partindo-se do pré-suposto que o único documento criado foi o demonstrado na Figura 60, o documento intermediário estaria organizado da seguinte forma (Figura 63). Figura 63: Documento que armazena o nome dos arquivos RDF que descrevem as imagens: de acordo com a posição ocupada pelos mesmos no esquema. Como foi criado um único documento RDF, o arquivo intermediário contém apenas um recurso, sendo que esse recurso possui um URI com valor curso/graduacao/sistemasdeinformacao/pessoa, ou seja, todos os documentos RDF associados a esse recurso, através da propriedade arquivo, são de uma pessoa do curso de graduação de Sistemas de Informação 4.6 Classe Criada para Implementação do Sistema Durante o processo de desenvolvimento do sistema, observou-se a necessidade de criação de apenas uma classe Arquivo, que permite ao desenvolvedor trabalhar fisicamente com os documentos RDF, já que para manipular os mesmos em memória existem as classes disponibilizadas pela API Jena. Os métodos pertinentes a referida classe estão sendo demonstrados na Tabela 7.

80 78 Tabela 7: Relação dos métodos da classe Arquivo. Assinatura Retorno Boolean boolean boolean Model int File[] Métodos e Parâmetros verificararquivoexiste(string nomearquivo) gravararquivo(string, Model) gravararquivo(string, RDFWriter writer, Model) carregararquivo(string nomearquivo) pegarnovoarquivo(string) pegarconjuntoarquivos(string) Nas seções subseqüentes é feito um breve comentário a respeito de cada um desses métodos, além do código Java que os implementam Método verificararquivoexiste(string) Esse método é utilizado para verificar se um determinado arquivo existe ou não em um local especificado pelo usuário (desenvolvedor), sendo que tanto o nome do arquivo, quanto o local são passados por parâmetro numa única string. O mesmo é utilizado para verificar se o documento RDF intermediário existe. Se não existir, o mesmo deverá ser então criado e, caso contrário, ele deverá ser apenas alterado. O código que implementa esse método é apresentado na Figura 64.

81 79 Figura 64: Código Java que implementa o método verificararquivoexiste (String) Método gravararquivo(string, Model) Esse método é utilizado para gravar um novo arquivo RDF, que recebe por parâmetro o nome do arquivo e o objeto Model, que contém o modelo RDF. Esse método é utilizado quando o documento RDF intermediário é gravado. Seu código pode ser visualizado na Figura 65. Figura 65: Código Java que implementa o método gravararquivo (String, Model) Método gravararquivo (String, RDFWriter, Model) Conforme pode ser observado, esse método possui a assinatura diferente do apresentado na seção Isso se deve ao fato de o mesmo possibilitar a alteração do(s) prefixos(s) da(s) namespace(s) do documento RDF, antes que o arquivo possa ser então armazenado em uma memória física. Esse método é utilizado durante o processo de armazenamento dos documentos RDF que descrevem as imagens, tendo em vista que o prefixo da namespace é alterado para imagem. O código que implementa esse método pode ser visualizado na Figura 66.

82 80 Figura 66: Código Java que implementa o método gravararquivo (String, RDFWriter, Model) Método carregararquivo(string) A partir do nome do arquivo, juntamente com seu caminho físico, esse método, quando invocado, retornará um objeto Model, ou seja, passará o conteúdo do arquivo RDF para a memória, fazendo com que o mesmo possa ser então alterado e posteriormente re-armazenado. O presente método é utilizado para realizar alteração no documento RDF intermediário, tendo em vista que o mesmo já exista. Na Figura 67, pode ser visualizado o código que implementa o presente método. Figura 67: Código Java que implementa o método carregararquivo(string) Método pegarnovoarquivo (String) Antes que um novo arquivo possa ser gerado, o mesmo precisa ser associado a um identificador, pois não pode haver arquivos com o mesmo nome em um mesmo local físico. Para isso, esse método é utilizado com a função de gerar um novo e único identificador para o arquivo que posteriormente será armazenado. A implementação desse método pode ser visualizada na Figura 68.

83 81 Figura 68: Código Java que implementa o método pegarnovoarquivo (String) Método pegarconjuntoarquivos(string) Esse método tem a responsabilidade de retornar um conjunto de arquivos pertencentes a uma determinada pasta. Ele ainda não está sendo utilizado, foi projetado e implementado para que possa ser utilizado durante o processo futuro de implementação de um módulo que fará as buscas nos documentos RDF armazenados. Seu código pode ser visualizado na Figura 69. Figura 69: Código Java que implementa o método pegarconjuntoarquivos (String) 4.7 Utilizando o Sistema para Descrição de uma Imagem Como em RDF não há uma forma de verificar se os documentos criados estão de acordo com o esquema que representa o domínio, foi desenvolvida uma interface que segue a especificação do esquema, limitando assim as possibilidades do usuário, ou seja, só poderão ser criados documentos de acordo com a especificação pré-definida pelo sistema. Nesse sentido, pode ser observado como uma vantagem, analisando o ponto de vista de que o usuário não poderá criar documentos aleatórios. Para a demonstração dos passos a serem seguidos para descrição de uma dada imagem escolheu-se uma fotografia de um grupo de

84 82 estagiários, alunos do curso de graduação de Sistemas de Informação e que estão vinculados à atividade ensino. A parte do sistema que possibilita a escolha de uma imagem (.jpeg) pode ser visualizada na Figura 70. Figura 70: Tela Principal do Sistema. Após a escolha da imagem o sistema direciona o usuário para a tela em que estará disponível o formulário com os campos necessários para descrição da referida imagem. A Figura 71 apresenta tal formulário com as devidas informações a respeito da imagem anteriormente escolhida.

85 83 Figura 71: Formulário que possibilita a submissão das informações sobre uma dada imagem. Conforme pode ser observado na Figura 71, para os campos, Titulo, Crédito, Descrição e Data (que fornecem informações gerais sobre a imagem) foram atribuídas respectivamente as seguintes informações: Estagiários em um laboratório, Coordenadora do Curso, Estagiários do curso de Sist. Inf. e 15/06/2004. É importante ressaltar que somente o campo Descrição é facultado ao usuário o seu preenchimento. Informações mais específicas podem ser determinadas a partir das opções demonstradas na parte 2 da Figura 71. Dessa forma foi possível detalhar a descrição da imagem a tal ponto de dizer que a mesma se trata de alunos estagiários do curso de graduação de Sistemas de Informação. A Figura 72 apresenta o documento RDF gerado a partir da confirmação da descrição da referida imagem.

A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos) Desenvolvimento de Sistemas Web A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos) Prof. Mauro Lopes 1-31 24 Objetivos Dando continuidade aos estudos sobre JSP,

Leia mais

Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos) Linguagem de Programação para Web Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos) Prof. Mauro Lopes 1-31 28 Objetivos Dando continuidade aos estudos sobre JSP, apresentaremos os

Leia mais

1 Introdução. 1 World Wide Web Consortium -

1 Introdução. 1 World Wide Web Consortium - 1 Introdução A internet é uma ampla fonte de disseminação de informações, abrangendo praticamente todas as áreas de conhecimento. A maioria das informações disponíveis hoje para a grande parte dos usuários

Leia mais

5 Tecnologias estudadas

5 Tecnologias estudadas 5 Tecnologias estudadas Esse capítulo descreve as principais linguagens existentes para o desenvolvimento de ontologias para uso na Web. Essas linguagens são vistas como a infra-estrutura básica para o

Leia mais

XML. Prof. Júlio Machado

XML. Prof. Júlio Machado XML Prof. Júlio Machado julio.machado@pucrs.br INTRODUÇÃO O que é XML? É a sigla de Extensible Markup Language Linguagem de especificação para descrever dados Padrão aberto e largamente usado Definido

Leia mais

5 Arquitetura de implementação

5 Arquitetura de implementação Arquitetura de implementação 103 5 Arquitetura de implementação 5.1 Visão geral Nossa arquitetura é caracterizada pela construção de um ambiente para execução de aplicações hipermídia definidas segundo

Leia mais

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta JavaServer Pages (JSP) Leonardo Gresta Paulino Murta leomurta@ic.uff.br Especificação/IDE/Implementação Esse curso foi preparado em 03/2015 usando a seguinte especificação, IDE e implementação Especificação

Leia mais

XML - Extensible Markup Language

XML - Extensible Markup Language Por Sergio Crespo XML - Extensible Markup Language Extensible Markup Language (XML) é linguagem de marcação de dados (meta-markup language) que provê um formato para descrever dados estruturados. Isso

Leia mais

O padrão RDF na descrição de imagens

O padrão RDF na descrição de imagens O padrão RDF na descrição de imagens Edeilson Milhomem da Silva 1, Parcilene Fernandes de Brito 1 1 Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP/ULBRA) Cx. Postal 160 77054-970

Leia mais

Prof. Me. Sérgio Carlos Portari Júnior

Prof. Me. Sérgio Carlos Portari Júnior Prof. Me. Sérgio Carlos Portari Júnior Ambientes que visam desenvolver aplicações que precisam de um processamento paralelo e distribuído deverão saber lidar com algumas dificuldades. Isto decorre da heterogeneidade

Leia mais

5 Detalhamento da arquitetura para OnOCs

5 Detalhamento da arquitetura para OnOCs Detalhamento da arquitetura para OnOCs 95 5 Detalhamento da arquitetura para OnOCs 5.1 Motivação A arquitetura para OnOCs descrita no capítulo anterior foi introduzida para facilitar e agilizar o desenvolvimento

Leia mais

Este capítulo aborda os fundamentos principais aplicados neste trabalho.

Este capítulo aborda os fundamentos principais aplicados neste trabalho. 2 Fundamentos Este capítulo aborda os fundamentos principais aplicados neste trabalho. 2.1 Linked Data Linked Data é um padrão de práticas a serem seguidas para a publicação e interligação de dados estruturados

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas SOA e Web Services Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura

Leia mais

Manipulação de uma ontologia desenvolvida em OWL através da utilização da API JENA 2 Ontology

Manipulação de uma ontologia desenvolvida em OWL através da utilização da API JENA 2 Ontology Manipulação de uma ontologia desenvolvida em OWL através da utilização da API JENA 2 Ontology Paulo Roberto Gonçalves 1, Parcilene Fernandes de Brito 1 1 Laboratorio de Inteligência Computacional Centro

Leia mais

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s Introdução Contribuição do Capítulo 2: discutir modelos de dados definir conceitos de esquemas e instâncias descrever os tipos de interfaces e linguagens oferecidas por um SGBD mostrar o ambiente de programas

Leia mais

Web Semântica: Conceitos, Tecnologias e Aplicações

Web Semântica: Conceitos, Tecnologias e Aplicações Web Semântica: Conceitos, Tecnologias e Aplicações Paulo Vitor Antonini Orlandin paulovitor_e@hotmail.com Resumo Com o crescente número de usuários da Internet, consequentemente o número de informações

Leia mais

Um esquema de nomes para localização de fontes de informação na Web, esse esquema chama-se URI.

Um esquema de nomes para localização de fontes de informação na Web, esse esquema chama-se URI. Aula 01 - Visão geral do HTML5 Professor Bruno Kiedis De acordo com o W3C a Web é baseada em 3 pilares: Um esquema de nomes para localização de fontes de informação na Web, esse esquema chama-se URI. Um

Leia mais

TECNOLOGIA WEB INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML

TECNOLOGIA WEB INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML 1 INTRODUÇÃO TECNOLOGIA WEB Começaremos desvendando o poder do desenvolvimento de aplicações baseadas na Web com a XHTML (Extensible HyperText Markup

Leia mais

Utilização de XML no Desenvolvimento de Hiperdocumentos Educacionais

Utilização de XML no Desenvolvimento de Hiperdocumentos Educacionais 1 Utilização de XML no Desenvolvimento de Hiperdocumentos Educacionais Fabiano Fagundes, Parcilene F. Brito, Fernando L. Oliveira, Jackson G. Souza, Carlos H. Tolentino Resumo O desenvolvimento colaborativo

Leia mais

Utilização da API Jena para a manipulação de uma ontologia representada em RDF

Utilização da API Jena para a manipulação de uma ontologia representada em RDF Utilização da API Jena para a manipulação de uma ontologia representada em RDF Danilo de Abreu Noleto 1, Parcilene Fernandes de Brito 1 1 Curso de Sistemas de Informação Centro Universitário Luterano do

Leia mais

Linked Data Management. Capítulo 1: Linked Data & the Semantic Web Standards

Linked Data Management. Capítulo 1: Linked Data & the Semantic Web Standards Linked Data Management Capítulo 1: Linked Data & the Semantic Web Standards Carmem Hara 18 de outubro de 2016 Dados na Web Processamento automático de dados da Web: dados com sintaxe e semântica bem definidas

Leia mais

Web Services - Definição. Web Services - Introdução. Universidade Federal de Santa Catarina. DSOOII Web Services

Web Services - Definição. Web Services - Introdução. Universidade Federal de Santa Catarina. DSOOII Web Services Universidade Federal de Santa Catarina DSOOII Web Services Web Services - Introdução Havia inconsistência de plataformas, sistemas operacionais e/ou linguagens de programação; Acadêmicos: Ariane Talita

Leia mais

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo Introdução Geral Prof. Vicente Paulo de Camargo Web e Internet A Internet é uma rede de computadores que conecta milhões de computadores Se comunicam através do protocolos específicos A Web é uma forma

Leia mais

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles. Web Services Web Service é um componente de software identificado por uma URI que independe de implementação ou de plataforma e pode ser descrito, publicado e invocado sobre uma rede por meio de mensagens

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Desenvolvimento Web III. Prof. Felippe Scheidt

Desenvolvimento Web III. Prof. Felippe Scheidt Desenvolvimento Web III Prof. Felippe Scheidt Apresentação da disciplina Compreender os princípios do desenvolvimento de sistemas web e da construção de páginas dinâmicas utilizando padrões de projetos,

Leia mais

Análise e projeto de sistemas

Análise e projeto de sistemas Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os

Leia mais

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O A P L I C A Ç Õ E S M O N O L Í T I C A S Na época dos computares independentes um aplicativo era desenvolvido para ser usado em uma única

Leia mais

U NIVERSIDADE F EDERAL DE P ERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

U NIVERSIDADE F EDERAL DE P ERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA U NIVERSIDADE F EDERAL DE P ERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 2014.2 OpenCIn Dados Abertos e Interligados Acerca dos Docentes do Centro de Informática PROPOSTA DE TRABALHO

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Introdução Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB INTRODUÇÃO A PROGRAMAÇÃO PARA WEB PROF. ME. HÉLIO ESPERIDIÃO Navegador O navegador também conhecido como web browser é um programa que habilita seus usuários a interagirem com documentos hospedados em

Leia mais

U NIVERSIDADE F EDERAL DE P ERNAMBUCO

U NIVERSIDADE F EDERAL DE P ERNAMBUCO U NIVERSIDADE F EDERAL DE P ERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 2015.1 Extensão do Dataset OpenCIn com Dados Referentes às Notícias e Eventos Relacionados ao Centro de Informática

Leia mais

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli Programa de computador sequência de comandos ou instruções executados por um computador com a finalidade de produzir um resultado e resolver um problema; Linguagem de programação método para a criação

Leia mais

Padrões para Definição de Metadados

Padrões para Definição de Metadados Padrões para Definição de Metadados Marcos Vinícius Salgado Monteiro mvsmonteiro@midiacom.uff.br 1- Introdução 2- MPEG-7 3- TV-Anytime 4- RDF 4.1- OWL 5- Conclusão Roteiro Introdução Hoje em dia, cada

Leia mais

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADA À GESTÃO PÚBLICA

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADA À GESTÃO PÚBLICA SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADA À GESTÃO PÚBLICA Julio Cesar do Carmo Junior 1, Osvaldo Cesar Pinheiro de Almeida 2 1 Informática para Gestão, Faculdade de Tecnologia, Botucatu, SP, Brasil. E-mail:

Leia mais

Projeto. Observatório Nacional de Clima e Saúde

Projeto. Observatório Nacional de Clima e Saúde Projeto Observatório Nacional de Clima e Saúde Coordenação Técnica Institucional: Fiocruz e INPE Coordenação Nacional CGVAM- Coordenação Geral de Vigilância Ambiental Secretaria de Vigilância em Saúde

Leia mais

Padrão para Especificação de Requisitos de Produto de Multimídia

Padrão para Especificação de Requisitos de Produto de Multimídia Padrão para Especificação de Requisitos de Produto de Multimídia 1 Introdução 1.1 Escopo do documento Sugere-se aqui uma estrutura para a Especificação de Requisitos de Produto de Multimídia (ERPM). Esta

Leia mais

INTRODUÇÃO À INTERNET E À WORLD WIDE WEB

INTRODUÇÃO À INTERNET E À WORLD WIDE WEB INTRODUÇÃO À INTERNET E À WORLD WIDE WEB CURSO TÉCNICO DE INFORMÁTICA MODALIDADE SUBSEQÜENTE DESENVOLVIMENTO WEB I PROF. ALEXANDRO DOS SANTOS SILVA 1 1 SUMÁRIO Conceitos básicos Histórico Principais modelos

Leia mais

PROTÓTIPO DE FERRAMENTA DE CONSULTA DE INFORMAÇÕES BASEADAS EM ONTOLOGIAS PETER ANTONY RAUSCH JOYCE MARTINS

PROTÓTIPO DE FERRAMENTA DE CONSULTA DE INFORMAÇÕES BASEADAS EM ONTOLOGIAS PETER ANTONY RAUSCH JOYCE MARTINS PROTÓTIPO DE FERRAMENTA DE CONSULTA DE INFORMAÇÕES BASEADAS EM ONTOLOGIAS PETER ANTONY RAUSCH JOYCE MARTINS ROTEIRO Introdução Objetivos Fundamentação Teórica Especificação Implementação Operacionalidade

Leia mais

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( ) ELEMENTOS BÁSICOS DA LINGUAGEM JAVA Patricia Della Méa Plentz INE-CTC-UFSC E-Mail: plentz@inf.ufsc.br URL: http://moodle.ufsc.br INE5605-Turma 0238B Sumário 2.1 Classes e Objetos na POO 2.2 2 Revisão da

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Por quê JSP? Com Servlets é fácil Ler dados de um formulário Recuperar dados de uma requisição Gerar informação de resposta Fazer gerenciamento

Leia mais

CONVERSÃO DE METADADOS DO PADRÃO DUBLIN CORE PARA O RDF Arlindo Leal Boica Leandro Henrique Mendonça de Oliveira

CONVERSÃO DE METADADOS DO PADRÃO DUBLIN CORE PARA O RDF Arlindo Leal Boica Leandro Henrique Mendonça de Oliveira 8 GLOBAL SCIENCE AND TECHNOLOGY (ISSN 1984-3801) CONVERSÃO DE METADADOS DO PADRÃO DUBLIN CORE PARA O RDF Arlindo Leal Boica Leandro Henrique Mendonça de Oliveira Resumo: Atualmente, a descrição de recursos

Leia mais

Para descrever os metadados das aplicações, desenvolvemos um método chamado SHDM (Semantic Hypermedia Design Method) [Lima & Schwabe 2002a, 2002b,

Para descrever os metadados das aplicações, desenvolvemos um método chamado SHDM (Semantic Hypermedia Design Method) [Lima & Schwabe 2002a, 2002b, 1 Introdução A Web Semântica é uma visão [W3C, 2001b]: uma idéia de termos dados na Web definidos e conectados de modo a serem utilizados por máquinas não só com objetivo de apresentação, mas também para

Leia mais

Construção de Sites. Introdução ao Universo Web. Prof. Nícolas Trigo

Construção de Sites. Introdução ao Universo Web. Prof. Nícolas Trigo Construção de Sites Introdução ao Universo Web Prof. Nícolas Trigo trigo.nicolas@gmail.com CONCEITOS BÁSICOS Internet à conglomerado de redes de computadores que permite o acesso a informações e a transferência

Leia mais

SERVIÇO CONTRATO Especificação das operações de Serviço

SERVIÇO CONTRATO Especificação das operações de Serviço SERVIÇO Especificação das operações de Serviço 1.0 01/07/2014 1 de 8 Histórico de Revisões Data Versão Descrição Elaboração Inicial da especificação da operação de serviço 17/06/2014 0.1 ImportarArquivoContratoCCEAL.

Leia mais

Introdução à Web Semântica

Introdução à Web Semântica Introdução à Web Semântica André Desessards Jardim Universidade Católica de Pelotas Centro Politécnico Mini Curso Web Semântica 1. Introdução A organização da imensa vastidão de conteúdo disponível atualmente

Leia mais

Web Semântica para Máquinas de Busca

Web Semântica para Máquinas de Busca Web Semântica para Máquinas de Busca Erikson Freitas de Morais, Marcelo Borghetti Soares erikson@dcc.ufmg.br, borghett@dcc.ufmg.br Universidade Federal de Minas Gerais Resumo. A informação na web atualmente

Leia mais

RDF e RDF Schema na representação de páginas do portal CEULP/ULBRA

RDF e RDF Schema na representação de páginas do portal CEULP/ULBRA RDF e RDF Schema na representação de páginas do portal CEULP/ULBRA Danilo de Abreu Noleto 1, Parcilene Fernandes de Brito 1 1 Curso de Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP/ULBRA)

Leia mais

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro MODELAGEM DE SISTEMAS Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Modelagem de Sistemas: A modelagem de um sistema auxilia o analista a entender a funcionalidade

Leia mais

HUGO SANTIAGO PERES AUTOMATIZANDO TESTES DE SOFTWARE COM SELENIUM

HUGO SANTIAGO PERES AUTOMATIZANDO TESTES DE SOFTWARE COM SELENIUM HUGO SANTIAGO PERES AUTOMATIZANDO TESTES DE SOFTWARE COM SELENIUM Rio de Janeiro 2015 FICHA CATALOGRÁFICA ii iii Santiago Peres, Hugo. Automatizando Testes com Selenium / Hugo Santiago Peres. Rio de Janeiro,

Leia mais

ONTOLOGIAS E ONTOLOGIAS DIFUSAS

ONTOLOGIAS E ONTOLOGIAS DIFUSAS Universidade Federal de São Carlos - UFSCar Programa de Pós-Graduação em Ciência da Computação PPGCC Departamento de Computação - DC ONTOLOGIAS E ONTOLOGIAS DIFUSAS SUMARIO Introdução Ontologias OWL Regras

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Conceitos Básicos Introdução Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

SERVIÇOS WEB. Frankley Gustavo F. Mesquita, Tamiris Souza Fonseca. 27 de junho de 2016

SERVIÇOS WEB. Frankley Gustavo F. Mesquita, Tamiris Souza Fonseca. 27 de junho de 2016 Frankley Gustavo F. Mesquita Tamiris Souza Fonseca 27 de junho de 2016 Sumário 1 2 3 4 5 6 7 8 O padrão Web foi desenvolvido pelo Laboratório Europeu de Física de Partículas (CERN - European Particle Physics

Leia mais

Professor Emiliano S. Monteiro

Professor Emiliano S. Monteiro Professor Emiliano S. Monteiro To-Do Doing Done Conhecer os processos de desenvolvimento habilita o aluno a realizar uma melhor escolha de processo para uso em projetos futuros. A vantagem de conhecer

Leia mais

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha Programação com Sockets Ricardo Couto Antunes da Rocha rcarocha@inf.ufg.br 2005 Ricardo Couto Antunes da Rocha Parâmetros de protocolos Objetivo do protocolo Protocolo de transporte: TCP ou UDP Porta (servidora!):

Leia mais

Conceitos de HTML 5 Aula 1

Conceitos de HTML 5 Aula 1 Prof. João Augusto da Silva Bueno (joao.augusto@ifsc.edu.br) Conceitos de HTML 5 Aula 1 World Wide Web É um serviço da Internet que reúne vários documentos de todas as partes do mundo e esses documentos

Leia mais

DMS - DOCUMENTO DE MODELAGEM DE SISTEMA VERSÃO: [NOME DO SISTEMA] [SIGLA] [AUTORES]

DMS - DOCUMENTO DE MODELAGEM DE SISTEMA VERSÃO: [NOME DO SISTEMA] [SIGLA] [AUTORES] DMS - DOCUMENTO DE MODELAGEM DE SISTEMA Este documento foi criado seguindo as recomendações e orientações do livro UML na Prática Do Problema ao Sistema e do modelo PRISM do MPDS (Modelo Prático para Desenvolvimento

Leia mais

EA975 - Laboratório de Engenharia de Software

EA975 - Laboratório de Engenharia de Software EA975 - Laboratório de Engenharia de Software Turmas K/L - 2017 Aula 8 Vamos inicialmente especificar com mais detalhes o termo "recurso" utilizado no estilo arquitetural REST. Em REST, recursos são uma

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo JavaServer Pages (JSP) Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

Documento de Requisitos*

Documento de Requisitos* * Rosana T. Vaccare Braga *slides adaptados a partir do material da Profa Ellen Francine Barbosa Processo de Engenharia de Requisitos Documento de requisitos Processo de Engenharia de Requisitos Estudo

Leia mais

Introdução a Web Services

Introdução a Web Services Introdução a Web Services Mário Meireles Teixeira DEINF/UFMA O que é um Web Service? Web Service / Serviço Web É uma aplicação, identificada por um URI, cujas interfaces podem ser definidas, descritas

Leia mais

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks 48 3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks Este capítulo apresenta uma visão geral da contribuição principal deste trabalho: uma abordagem orientada a aspectos para o

Leia mais

Introdução a classes e objetos. Copyright 2006 by Pearson Education

Introdução a classes e objetos. Copyright 2006 by Pearson Education 3 Introdução a classes e objetos 3.1 Introdução Programas do Capítulo 2 Todas as instruções estavam localizadas na função main. Em geral Os programas consistirão Na função main e Em uma ou mais classes

Leia mais

1 Introdução. 1.1 A Web Semântica

1 Introdução. 1.1 A Web Semântica Introdução 19 1 Introdução 1.1 A Web Semântica A Web Semântica é definida por seus idealizadores como uma extensão da Web atual, onde as informações recebem um significado bem definido, permitindo maior

Leia mais

Conceitos, Arquitetura e Design

Conceitos, Arquitetura e Design capítulo 1 Conceitos, Arquitetura e Design 1.1 O que são os serviços de diretórios? Segundo a Wikipédia: Um serviço de diretório é um software que armazena e organiza informações sobre os recursos e os

Leia mais

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Classes o Objetos. Classes, objetos, métodos e variáveis de instância Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento

Leia mais

ABD Arquivos e Bibliotecas Digitais

ABD Arquivos e Bibliotecas Digitais ABD Arquivos e Bibliotecas Digitais Abril 2008 Parte VII Dublin Core Fontes dublincore.org/ http://dublincore.org/usage/documents/principles/ http://dublincore.org/documents/dc-rdf/ Objectivo do Dublin

Leia mais

Programação para Web

Programação para Web Colégio Estadual João Manoel Mondrone Ensino Fundamental, Médio, Profissional e Norm Técnico em Informática Programação para Web Profª Ana Paula Mandelli anapaula_mandelli@hotmail.com O que é a COMUNICAÇÃO?

Leia mais

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS 1. Explique a(s) diferença(s) entre design pattern e framework. 2. Analisar o arquivo de configurações (web.xml) abaixo identificando quais suas

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Jordana Sarmenghi Salamon jssalamon@inf.ufes.br jordanasalamon@gmail.com http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda

Leia mais

Banco de Dados. SGBDs. Professor: Charles Leite

Banco de Dados. SGBDs. Professor: Charles Leite Banco de Dados SGBDs Professor: Charles Leite Sistemas de BD Vimos que um BANCO DE DADOS representa uma coleção de dados com algumas propriedades implícitas Por exemplo, um BD constitui os dados relacionados

Leia mais

Guia de Bolso HTML e XHTML

Guia de Bolso HTML e XHTML Guia de Bolso HTML e XHTML Este guia de bolso oferece uma listagem concisa, porém abrangente, dos elementos e atributos especificados nas Recomendações HTML 4.01 e XHTML 1.0. O texto utiliza a abreviação

Leia mais

Visões Arquiteturais. Visões Arquiteturais

Visões Arquiteturais. Visões Arquiteturais Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade

Leia mais

WAP. Determinação de Superfícies. Visíveis. José Almir Freire de Moura Júnior.

WAP. Determinação de Superfícies. Visíveis. José Almir Freire de Moura Júnior. WAP Determinação de Superfícies José Almir Freire de Moura Júnior Visíveis {jafmj@cin.ufpe.br} Tópicos Motivação Introdução Histórico Visão geral Modelo WAP Rede WAP Arquitetura WAP WAE WML WSP WTP WTLS

Leia mais

O W3C e a Web Semântica. CPqD - abril/2009 Workshop Rede IP do Futuro

O W3C e a Web Semântica. CPqD - abril/2009 Workshop Rede IP do Futuro O W3C e a Web Semântica CPqD - abril/2009 Workshop Rede IP do Futuro Web, W3C e Web Semântica Tim Berners-Lee criou / propôs a Web em 1989 (há 20 anos) http://www.w3.org/history/1989/proposal.html (URI

Leia mais

Introdução ao Desenvolvimento de

Introdução ao Desenvolvimento de Introdução ao Desenvolvimento de Aplicações Web com JSF e PrimeFaces Marcelo Vinícius Cysneiros Aragão ICC Inatel Competence Center marcelovca90@inatel.br Santa Rita do Sapucaí, 15 de março de 2016 Conteúdo

Leia mais

Nesta disciplina aprenderemos. HTML CSS JavaScript Jquery PHP

Nesta disciplina aprenderemos. HTML CSS JavaScript Jquery PHP Introdução Nesta disciplina aprenderemos HTML CSS JavaScript Jquery PHP HTML é a abreviatura de HyperText Mark-up Language. O HTML foi inventado em 1990, por um cientista chamado Tim Berners-Lee. A finalidade

Leia mais

Introdução a Web. Programação para a Internet. Prof. Vilson Heck Junior

Introdução a Web. Programação para a Internet. Prof. Vilson Heck Junior Introdução a Web Programação para a Internet Prof. Vilson Heck Junior Introdução Quer ter idéias? Quer vender algo? Talvez comprar? A Web é uma forma universal de comunicação, na qual você pode participar.

Leia mais

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste 6 Discussão Além das técnicas de teste usando modelos gramaticais, existem outras abordagens de teste funcional de sistemas que estão sendo estudadas pela comunidade científica. Algumas delas se dedicam

Leia mais

14/08/2009. Módulo 4

14/08/2009. Módulo 4 ASP.NET Módulo 4 Objetivo Apresentar ao aluno os conceitos do ASP.Net, suas características e funcionamento; Demonstrar como deve ser criado um Web site; Criação de web form; Mostrar os principais controles

Leia mais

JAVA PARA WEB E EJB APLICAÇÕES WEB, SERVIDORES DE APLICAÇÃO, CONTAINERS WEB

JAVA PARA WEB E EJB APLICAÇÕES WEB, SERVIDORES DE APLICAÇÃO, CONTAINERS WEB JAVA PARA WEB E EJB APLICAÇÕES WEB, SERVIDORES DE APLICAÇÃO, CONTAINERS WEB INTRODUÇÃO AO DESENVOLVIMENTO WEB COM JAVA Tópicos Aplicações, componentes e containers web Aplicações web Modelo de aplicações

Leia mais

Proposta de um mecanismo de caching para modelos RDF

Proposta de um mecanismo de caching para modelos RDF Proposta de um mecanismo de caching para modelos RDF Fábio Castro Araujo 1, Jackson Gomes de Souza 1 1 Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP/ULBRA) Cx. Postal 160 77054-970

Leia mais

3 Tecnologias Relacionadas

3 Tecnologias Relacionadas Tecnologias Relacionadas 31 3 Tecnologias Relacionadas O objetivo deste capítulo é apresentar um resumo de cada tecnologia relacionada ao processo proposto nesta dissertação, mostrando suas principais

Leia mais

Unidade 6: Java Server Pages Prof. Daniel Caetano

Unidade 6: Java Server Pages Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 6: Java Server Pages Prof. Daniel Caetano Objetivo: Capacitar o aluno para produzir páginas usando a tecnologia JSP. INTRODUÇÃO Como foi observado na aula

Leia mais

Formação JAVA Web.

Formação JAVA Web. Inscreva-se na Formação JAVA Web e comece a desenvolver sistemas para Web e Desktop com a linguagem de programação open source multiplataforma mais valorizada do mercado. Carga-horária: 80h O que você

Leia mais

TECNOLOGIAS LOD E A PUBLICAÇÃO E INTERLIGAÇÃO DE ACERVOS DIGITAIS DE ARQUIVOS, BIBLIOTECAS E MUSEUS NA WEB

TECNOLOGIAS LOD E A PUBLICAÇÃO E INTERLIGAÇÃO DE ACERVOS DIGITAIS DE ARQUIVOS, BIBLIOTECAS E MUSEUS NA WEB TECNOLOGIAS LOD E A PUBLICAÇÃO E INTERLIGAÇÃO DE ACERVOS DIGITAIS DE ARQUIVOS, BIBLIOTECAS E MUSEUS NA WEB Seminário BBM de Bibliotecas Digitais, Preservação e Acesso, São Paulo, 13 e 14 de novembro, 2017

Leia mais

Sistemas de Banco de Dados

Sistemas de Banco de Dados Sistemas de Banco de Dados Fundamentos em Bancos de Dados Relacionais Wladmir Cardoso Brandão www.wladmirbrandao.com Departamento de Ciência da Computação (DCC) Instituto de Ciências Exatas e Informática

Leia mais

Web Services REST JAX-RS

Web Services REST JAX-RS Web Services REST JAX-RS Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Principais tecnologias envolvidas Testando os serviços desenvolvidos JAX-RS Principais anotações JAX-RS Principais anotações

Leia mais

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos. AULA 02 OBJETIVO: Características da Linguagem Orientada a Objetos. HABILIDADES TRABALHADAS: Comparação das características das linguagens orientadas a objetos frente às linguagens estruturadas. Conhecimentos

Leia mais

DESENVOLVENDO APLICAÇÕES WEB COM JSP E JSTL. Peter Jandl Junior. Novatec

DESENVOLVENDO APLICAÇÕES WEB COM JSP E JSTL. Peter Jandl Junior. Novatec DESENVOLVENDO APLICAÇÕES WEB COM JSP E JSTL Peter Jandl Junior Novatec Sumário Agradecimentos... 13 Sobre o autor... 14 Prefácio...15 Capítulo 1 JSP (JavaServer Pages)... 17 1.1 Introdução... 17 1.2 Aplicação...

Leia mais

Sérgio Koch Van-Dall

Sérgio Koch Van-Dall PROTÓTIPO PARA ATUALIZAÇÃO ASSÍNCRONA DE DADOS UTILIZANDO WEB SERVICES Sérgio Koch Van-Dall sergiod@inf.furb.br Orientador: Prof. Paulo Fernando da Silva UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE CIÊNCIAS

Leia mais

INTRODUÇÃO A PROGRAMAÇÃO AVANÇADA PARA WEB E AO HTML. Prof. Msc. Hélio Esperidião

INTRODUÇÃO A PROGRAMAÇÃO AVANÇADA PARA WEB E AO HTML. Prof. Msc. Hélio Esperidião INTRODUÇÃO A PROGRAMAÇÃO AVANÇADA PARA WEB E AO HTML Prof. Msc. Hélio Esperidião NAVEGADOR O navegador também conhecido como web browseré um programa que habilita seus usuários a interagirem com documentos

Leia mais

Web I F R N I N S T I T U TO F E D E R A L D E E D U C A Ç Ã O, C I Ê N C I A E T E C N O LO G I A D O R I O G R A N D E D O N R T E.

Web I F R N I N S T I T U TO F E D E R A L D E E D U C A Ç Ã O, C I Ê N C I A E T E C N O LO G I A D O R I O G R A N D E D O N R T E. Web I F R N I N S T I T U TO F E D E R A L D E E D U C A Ç Ã O, C I Ê N C I A E T E C N O LO G I A D O R I O G R A N D E D O N R T E. J O S É A N TÔ N I O D A C U N H A Web Page HTTP No início a web, era

Leia mais

Victor Hugo Andrade Soares monitor João Vitor dos Santos Tristão Primeiro Trabalho Prático

Victor Hugo Andrade Soares monitor João Vitor dos Santos Tristão Primeiro Trabalho Prático Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Algoritmos e Estruturas de Dados II docente Profa. Dra. Cristina Dutra de

Leia mais

6 Conclusão. 6.1 Trabalhos relacionados

6 Conclusão. 6.1 Trabalhos relacionados Conclusão 112 6 Conclusão 6.1 Trabalhos relacionados A primeira versão do método SHDM apresentada por Lima (2003) empregava um modelo orientado a objetos como a base estrutural do modelo conceitual de

Leia mais

Figura 16 Niagara - Visão de grupos de notas.

Figura 16 Niagara - Visão de grupos de notas. Conclusão 6 Conclusão 6.1 Trabalhos Relacionados Dentre as funcionalidades fornecidas pela interface gerada pelo framework, em destaque está a possibilidade do zoom livre. Disponibilizar esta funcionalidade

Leia mais

1 Introdução Motivação

1 Introdução Motivação Introdução 15 1 Introdução Em sua origem, a WWW - World-Wide Web (Berners-Lee, 1994) foi concebida como uma aplicação de hipertexto, visando apresentar informações científicas com referências cruzadas

Leia mais

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais