Web Semântica. Bruno Henrique Prybecz, José Ivan Gonçalves Júnior, Thiago Radi Mendes. Orientador: Professor Doutor Bruno Müller Junior

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

Download "Web Semântica. Bruno Henrique Prybecz, José Ivan Gonçalves Júnior, Thiago Radi Mendes. Orientador: Professor Doutor Bruno Müller Junior"

Transcrição

1 Bruno Henrique Prybecz, José Ivan Gonçalves Júnior, Thiago Radi Mendes Web Semântica Trabalho de conclusão do curso de Ciência da Computação. Departamento de Informática, Setor de Ciências Exatas, Universidade Federal do Paraná. Universidade Federal do Paraná Ciência da Computação Departamento de Informática Orientador: Professor Doutor Bruno Müller Junior Curitiba Dezembro de 2013

2 Lista de ilustrações Figura 1 Framework W3C da Web Semântica Figura 2 RDF e RDF Schema Figura 3 Processo implementado Figura 4 Página de download de um torrent no PirateBay Figura 5 Página de descrição do filme no IMDB Figura 6 Esquema da Classe Torrent Figura 7 Esquema da Classe Filmes Figura 8 Rede Semântica Torrent-Title Figura 9 Torrents Equivalentes Figura 10 Representação gráfica RDF

3 Lista de tabelas Tabela 1 Declarações documento RDF com entidades Tabela 2 Declarações documento RDF com recipiente

4 Sumário 1 Introdução Revisão Bibliográfica Web Semântica Fundamentos Framework Aplicações Agentes Falácias da Web Semântica Documentos Web Estruturados: XML Descrevendo Recursos Web: RDF RDF vs. XML Linguagem de Ontologia Web: OWL Sub-linguagens da OWL Exemplos SWI-Prolog e a Web Semântica Proposta do Trabalho Implementação Extração de dados RDF e RDF Schema Agente Conclusão Referências Apêndices 42 APÊNDICE A XML A.1 XML vs. HTML A.2 A linguagem XML A.3 Atributos em XML A.4 Namespaces A.5 XML Schema

5 APÊNDICE B RDF B.1 RDF: Fundamentos B.2 RDF Schema B.3 Reificação B.4 Tipos de dados B.5 Recipientes B.6 Semântica no RDF e RDF Schema B.7 Inferências B.8 Consultas SPARQL APÊNDICE C SWI-Prolog C.1 Banco de Dados RDF C.2 Namespaces e Entidades C.3 Consultas RDF e SPARQL

6 6 1 Introdução A comunicação humana é um processo que envolve troca de informações por meio de sistemas chamados simbólicos, e a sua existência é tão antiga quanto o próprio homem. Toda forma de troca de informações possui dois ou mais indivíduos atuando tanto ativamente quanto passivamente como elementos chaves, e também existem os processos mediados, quando existe um aparato tecnológico intermediando a comunicação entre esses elementos chaves. A World Wide Web é um exemplo de troca de informações mediada. Esses processos de comunicação sofrem constantes evoluções, e a ocorrência mais recente dessa evolução foi a criação da rede mundial de computadores, que com o passar dos anos se tornou o meio de comunicação mais poderoso já concebido [1]. Informação globalizada, rapidez na disponibilização de informações e alcance ilimitado dos dados foram algumas das mais importantes conquistas que a internet proporcionou, alterando totalmente a maneira de ensinar e aprender, comprar e vender, informar e ser informado [1]. Mas como em qualquer processo evolutivo, com o passar dos anos, a Web como conhecemos hoje se mostrou um meio ineficiente, pois não foi capaz de acompanhar o desenvolvimento humano, que demanda cada vez mais um processo rápido, inteligente, eficiente e preciso no compartilhamento de informações, o que abriu caminho para novas ideias na concepção e construção de possíveis melhorias [2]. Uma dessas melhorias é a Web Semântica, ideia proposta por Tim Berners-Lee em 2001 [3], que consiste em adicionar metadados que expressam sentido aos documentos disponíveis na Web, com o intuito de que programas sejam capazes de acessar os dados disponíveis e realizar tarefas automatizadas [2]. A Web Semântica foi criado pela World Wide Web Consortium 1 (W3C), organização fundada por Tim Berners-Lee em 1994 no Instituto de Tecnologia de Massachusetts (MIT), e é mantida pela mesma em colaboração com a organização européia para pesquisas nucleares CERN 2 [4]. Sua proposta é um modelo baseado em níveis, os quais definem um framework contendo requisitos e recomendações necessários para a construção de uma rede semântica dentro da Web atual. O principal propósito da Web Semântica é de atribuir significado ou sentido a qualquer conteúdo publicado na internet, através da utilização de metadados, de maneira a tornar as informações na Web interpretáveis por computadores, alcançando assim resultados mais rápidos, inteligentes, eficientes e precisos no compartilhamento de informações. 1 W3C: 2 CERN:

7 Capítulo 1. Introdução 7 A W3C vem desempenhando esforços em estudos e pesquisas na busca de ferramentas e padrões com a finalidade de tornar o framework da Web Semântica, além de tudo, eficiente e prático, contando com a contribuição de empresas, entidades e grandes nomes da computação, tornando-a uma tecnologia promissora na evolução das comunições na World Wide Web [2]. O objetivo desse trabalho é apresentar as ideias da Web Semântica, os conceitos e as tecnologias envolvidas, bem como a prática dos mesmos, apresentando uma implementação do que poderia vir a ser a Web Semântica em um domínio específico: o compartilhamento de arquivos entre computadores, utilizando o protocolo BitTorrent 3. A implementação proposta nesse trabalho é construir um agente capaz de obter e interpretar dados modelados no framework RDF e RDF Schema, obtidos a partir de um sistema de extração de documentos RDF. Esse trabalho está organizado da seguinte maneira: conceitos e ferramentas da Web Semântica no capítulo 2, proposta de uma aplicação na Web Semântica no capítulo 3, uma implementação da proposta no capítulo 4 e conclusão no capítulo 5. 3 BitTorrent:

8 8 2 Revisão Bibliográfica Este capítulo apresenta conceitos e ferramentas da Web Semântica. A seção 2.1 apresenta os conceitos e ideias da Web Semântica, a seção 2.2 apresenta a linguagem de marcações XML, a seção 2.3 o framework para descrição de recursos RDF, a seção 2.4 a linguagem de ontologias OWL e a seção 2.5 a linguagem de programação em lógica SWI-Prolog e seus módulos referentes à Web Semântica. 2.1 Web Semântica Semântica é o estudo do significado de palavras, frases, símbolos ou sinais, relacionandoos com o que representam no mundo real, utilizando um determinado meio linguístico de representação, isto é, a sua denotação. Por exemplo, a palavra da língua portuguesa "proibido" denota algo que não se deve fazer ou uma restrição no modo de agir em uma certa ocasião, e o símbolo circular contendo uma faixa na diagonal em seu interior na cor vermelha tem o mesmo significado em diversos contextos, como na sinalização de trânsito. A maioria das pessoas, ao longo da vida, tiveram um aprendizado para interpretar tal símbolo, ou seja, aprenderam a linguagem utilizada na representação e, por isso, sabem interpretá-lo e inferir que seu significado é o mesmo da palavra "proibido", e além disso, também conseguem fazer a ligação entre o símbolo e a palavra em uma situação no mundo real. Da mesma forma que nós, seres humanos, não nascemos com o conhecimento de que o símbolo de proibido referido acima denota o sentido de proibição, as máquinas também não conhecem o significado das palavras que estão na Web. Dessa forma, a ideia da Web Semântica é proporcionar essa capacidade de interpretação às máquinas, para que possam manipular dados de maneira mais eficiente e inteligente [3]. Para proporcionar tal capacidade, duas necessidades básicas devem ser consideradas: (1) uma linguagem padrão para descrever uma informação e (2) uma maneira padrão de relacionar duas ou mais informações. Ao suprir a necessidade (1), os computadores conseguiriam de alguma forma entender ao menos a estrutura das informações. Por exemplo, descrever o símbolo de proibido como a sobreposição de um círculo com uma reta na diagonal, ambos na cor vermelha, para que um programa ao encontrar tal descrição execute uma ação de acordo com o sentido do símbolo.

9 Capítulo 2. Revisão Bibliográfica 9 Já a necessidade (2) tornaria os relacionamentos entre as informações interpretáveis em um determinado contexto. Por exemplo, a letra "E" dentro de um círculo com uma reta na diagonal, ambos na cor vermelha, representa a proibição de estacionar veículos, na sinalização de trânsito. Por si só, o símbolo "E" não possui tal interpretação, nem o símbolo de proibido. Para suprir essas necessidades, duas importantes tecnologias foram propostas para a Web Semântica: (1) a linguagem de marcação extensible Markup Language (XML) e (2) o framework para descrição de recursos Resource Description Framework (RDF) [3] [2]. Mas, mesmo com o poder dessas tecnologias, um problema inerente à semântica permanece: a ambiguidade. Quando duas informações são descritas da mesma forma, mas contêm significados distintos, ou quando duas informações são descritas de maneiras diferentes uma da outra, mas possuem o mesmo significado elas são ditas ambíguas, pois causam indeterminação e dúvidas quanto aos seus significados. Para que fosse possível lidar com tais indeterminações, a Web Semântica incorporou mais um componente básico em sua estrutura: a construção de ontologias. Uma ontologia, que no contexto da Inteligência Artificial e da Web, se trata de definições de relacionamentos entre termos, traz uma taxonomia e um conjunto de regras de inferências capazes de solucionar problemas de ambiguidade [3]. Para a Web Semântica, foi proposto a linguagem de ontologias Web Ontology Language (OWL), que define instâncias ontológicas, descrevendo classes e suas respectivas propriedades e seus relacionamentos [2] Fundamentos Desde a criação da World Wide Web, seu objetivo sempre foi a de manter e compartilhar informações, usuários disponibilizando conteúdo e mantendo-os acessíveis por qualquer um em qualquer lugar, com acesso apropriado, formando um sistema de informação global [5]. Contudo, a quantidade e abrangência desses dados vem crescendo de maneira exponencial ao longo dos anos, e assim a internet se tornou uma fonte de dados, muitas vezes, de qualidade duvidosa que podem conter invalidações ou estarem desatualizados [2]. Grande parte desse aglomerado caótico de dados é humanamente interpretável. Porém, de maneira computacional, boa parte da informação não tem sentido, impossibilitando tanto o acesso quanto a compreensão das máquinas sobre o real significado de um dado. Não permitir o acesso a informações por máquinas é uma deficiência na Web atual. Para melhor entender o impacto dessa deficiência, vamos apresentar um exemplo. Considere o seguinte cenário: Pedro é um amante do cinema, coleciona diversos

10 Capítulo 2. Revisão Bibliográfica 10 filmes antigos e as melhores ferramentas que possui para procurá-los são os buscadores na internet. Certo dia, Pedro descobre que existe um filme bastante raro e comentado na comunidade de cinéfilos que ele ainda não possui. Para obter tal filme decide procurá-lo na rede de compartilhamento de conteúdo via protocolo BitTorrent, por meio dos buscadores atualmente disponíveis na internet, sendo que o nome do filme em português é a única informação que possui. Na sua primeira tentativa, com o título em português, Pedro não encontra nenhum ficheiro relevante, assim decide encontrar o título em inglês do filme, esperando que com isso a busca retorne resultados relevantes. Para encontrar o título em inglês, Pedro acessa outro site, onde realiza uma busca que encontra o título do filme em inglês, e com isso, realiza novamente a busca na ferramenta inicial. Na segunda tentativa, Pedro encontra somente dois arquivos relevantes, onde o primeiro possui poucos usuários no compartilhamento e o segundo possui uma qualidade baixa de imagem, e por isso continua a busca. Analisando um dos arquivos encontrados, Pedro descobre que na verdade o longa metragem é de origem Germânica, e assim, procura novamente em outro site o título do filme em alemão. Com o título original, realiza novamente a busca na ferramenta inicial, que dessa vez encontra resultados relevantes. As tarefas descritas no exemplo acima envolvem diferentes fontes de informações e requerem que um usuário percorra o conteúdo de diversas páginas retornadas por um motor de busca. Essas tarefas poderiam ser executadas de forma automática por um software, se as informações disponibilizadas na Web atual fossem acessíveis por máquinas [3]. Como dito anteriormente, o maior obstáculo encontrado atualmente ao prover uma experiência mais ágil e pontual aos usuários da internet é devido ao fato de boa parte da informação contida na Web não ser interpretável por máquinas, isto é, computadores não são capazes de descobrir corretamente o significado das informações sem a ajuda do usuário. Alguns mecanismos de busca disponíveis atualmente, como o Google R, permite uma maneira um pouco mais satisfatória, empregando alguns artifícios da inteligência artificial e de estatística para que a busca retorne algo esperado pelo usuário. Ainda assim, por mais sofisticados que sejam, esses mecanismos ainda possuem diversas fraquezas: Muitas vezes é necessário realizar a busca novamente com novos termos, ou restringila removendo alguns, quando nada relevante é retornado; Mesmo que páginas importantes sejam retornadas pela busca, haverá também outras milhares irrelevantes, exigindo do usuário uma segunda filtragem que idealmente

11 Capítulo 2. Revisão Bibliográfica 11 seria papel do próprio mecanismo de busca; As buscas são altamente sensíveis ao vocabulário, visto que os motores de busca se baseiam quase que exclusivamente em padrões na linguagem ou simplesmente na palavra buscada. Essas deficiências estarão agregadas a qualquer mecanismo, mesmo que se utilize diversas tecnologias avançadas de busca, pois o modo mais correto de se obter uma melhora significativa seria tratar os próprios dados que serão buscados, afim de torná-los compreensíveis por programas, o que não é feito. A ideia de se construir uma rede semanticamente estruturada é ainda mais antiga do que a forma que se construiu a Web nas últimas décadas. O artigo "As We May Think" de Vannevar Bush [6], datado de 1945, já continha o esboço de todas as ideias que poderiam ser realizadas a partir do desenvolvimento da Web Semântica [7]. Em seu artigo, Vannevar descreve o que seria uma máquina visionária cuja função seria guardar conhecimento e quantidades colossais de informação para rápido acesso e recuperação quando necessário, e a batizou de Memex (Memory + index). Grande parte da sua descrição, à primeira vista, poderia parecer futurística e impraticável, apesar disso, foi o ponto de partida para a criação da WWW e da Web Semântica. Criada por Sir Timothy John Berners-Lee, ou apenas Tim Berners Lee, também criador da WWW em 1989, a Web Semântica, diferente do que possa parecer, não se trata de uma Web paralela à atual, mas sim uma extensão funcional da mesma, onde toda informação ganharia um significado bem definido, legível e interpretável tanto por máquinas quanto por pessoas. Desde o tempo de Vannevar, a tecnologia obteve tamanho progresso que disponibilizou diversos avanços na área de processamento de informações, o que tornou possível, nos moldes da sua primeira proposta em 1945, a concretização de boa parte da Web Semântica. Podemos citar diversos sistemas que compõem a Web Semântica que permitem melhorias no gerenciamento do conhecimento, cujo objetivo está em acessar, obter e manter o conhecimento ou informação com total controle e organização em conjunto com ações humanas de modo cooperativo, tornando a Web Semântica mais avançada em comparação com a Web atual [2], uma vez que: Conhecimentos são organizados conforme seus significados, atribuindo informações sobre os dados, mudando por completo a estrutura atual na qual toda e qualquer informação é disponibilizada sem qualquer tipo de critério;

12 Capítulo 2. Revisão Bibliográfica 12 Ferramentas automatizadas serão usadas para a validação de informações existentes e extração de novas informações. A busca baseada em palavras chaves, mais comum atualmente, seria substituída por uma busca mais inteligente através de consultas (queries), de forma a recuperar, tratar e apresentar a informação de forma legível para os usuários; Controle e restrição de acesso a conteúdos não autorizados ou impróprios para usuários. Uma vez que toda informação passa a ser facilmente interpretada por agentes, os mesmos poderiam realizar esse tipo de validação seguindo restrições descritas no próprio dado ou no serviço na Web que estivesse disponibilizando esse dado Framework - Web Semântica e suas camadas A W3C definiu um modelo - um framework - do que poderá vir a ser a Web semântica, unindo tecnologias conceituadas, amplamente utilizadas e bastante maduras, como a XML (extended Markup Language) e seu derivado RDF (Resource Description Framework) para a descrição e relacionamento de conteúdo. Figura 1 Framework W3C da Web Semântica A figura 1 apresenta o modelo arquitetural proposto pela W3C, que divide a Web Semântica em camadas. Esse modelo é estruturado como um framework que define como seus componentes são utilizados e arranjados, sendo que cada um cumpre um papel no processo de construção da Web Semântica. Cada camada será detalhada a seguir. A camada UNICODE representa o próprio Unicode Standard, que define um padrão universal de caracteres para representação de textos que são processados por computadores. Uma codificação dentro do padrão UNICODE fornece uma representação nu-

13 Capítulo 2. Revisão Bibliográfica 13 mérica única para cada caracter, não importando a plataforma, o programa ou mesmo a língua, evitando representações conflitantes entre si. É suportado por diversos sistemas operacionais e todos os navegadores modernos. Exemplos de codificações dentro do padrão UNICODE mais conhecidos atualmente são o UTF-8, UTF-16 e UTF-32 [8]. Para identificarmos qualquer que seja um recurso dentro da Web - livros, autores, locais geográficos, uma pessoa, uma mercadoria, etc - é utilizado um URI (Uniform Resource Identifier), que identifica de forma única cada recurso descrito no padrão Unicode. Possui a mesma ideia de identificadores de tuplas em uma tabela de banco de dados e sua função é semelhante. Um URI pode vir a ser uma URL (Uniform Resource Location), um tipo específico de URI, que quando utilizado permite que o recurso seja acessível através de seu endereço Web correspondente. Nas camadas centrais do modelo temos as linguagens utilizadas para a descrição de recursos na Web Semântica: a XML e o RDF [2]. Com a linguagem XML temos uma forma simples de descrever recursos na Web. Com um vocabulário definido pelo próprio usuário, o compartilhamento de informações se torna mais fácil e direto. O framework RDF é um modelo de dados para descrever declarações sobre recursos que permite uma descrição mais formal em comparação à XML, que modela os dados em um formato de predicados, permitindo inferências sobre os mesmos. O RDF Schema proporciona ao usuário a capacidade de definir o vocabulário de um domínio específico (esquemas), e é baseada no framework RDF. Com um maior poder de representação do que a XML, permite organizar recursos de forma hierárquica, definindo classes, propriedades, relacionamentos e restrições. A camada de vocabulários ontológicos permite que usuários definam seus esquemas de representação de domínios específicos e relacionamentos entre esquemas por meio de ontologias. A RDF Schema é uma linguagem primitiva de ontologias, com uma capacidade baixa de representação de relacionamentos complexos, por esse motivo, foi necessário a padronização de outra linguagem para a descrição de ontologias mais complexas na Web Semântica, a OWL [4] [2]. Na camada de lógica, temos a construção de regras que atuam sobre instâncias e recursos. A camada de prova tem a função de executar essas regras, funcionando como um mecanismo de inferência da Web Semântica. As assinaturas digitais têm como objetivo garantir a autenticidade dos recursos na Web, uma vez que seria prático distinguir definições falsas ou equivocadas das já padronizadas e amplamente utilizadas. Qualquer recurso identificado por uma URL pode ser assinado digitalmente, conferindo ao mesmo a garantia de ser autêntico e confiável através de uma entidade certificadora.

14 Capítulo 2. Revisão Bibliográfica 14 No escopo da Web Semântica, as assinaturas digitais também garantem a veracidade das informações, desde a fonte de um documento RDF até a conferência de provas. Sem esse recurso seria muito díficil garantir a integridade dos dados e a comprovação da procedência dos recursos, abrindo caminho para fraudes e golpes, levando em conta que a verificação poderia ser feita de forma automática por agentes. Por fim, a camada mais superior, a de confiança, tem o objetivo de avaliar a corretude da prova elaborada nas camadas inferiores. Essa avaliação é feita através da verificação da autenticidade e resolução de contradições. Apesar da estrutura apresentar um objetivo claro e definido, o modelo, em suas camadas superiores (lógica e prova), se encontra em estado imaturo. Um dos pontos que levam a essa afirmação está no fato de que atualmente, mesmo com a padronização da linguagem OWL, ainda não está muito claro como a camada de ontologia irá relacionar-se com as superiores. Algumas tecnologias protótipos que seriam utilizadas nas camadas de lógica e prova já estariam sendo elaboradas, mas necessitam de um melhor desenvolvimento e padronização [9]. Cada camada não seria estritamente implementada na forma como é proposto pelo modelo, sendo que a separação das mesmas tem apenas motivos de direcionamento de estudos e pesquisas, podendo ser adaptadas conforme os avanços e melhorias futuras [2]. Um bom exemplo dessa maleabilidade está no fato de serem difundidas atualmente diversas versões desse mesmo modelo, algumas mais detalhadas e outras ainda mais condensadas, sendo que na realidade tratam-se do mesmo framework Aplicações Atualmente, existem algumas aplicações que já utilizam os conceitos da Web Semântica, como: DBPedia: Aplicação que extrai informações do site Wikipedia 1 e os formata em RDF 2. E-culture: Aplicação que permite o acesso à múltiplas coleções de dados de diversos museus da Europa 3. Sgvizler: Biblioteca JavaScript que obtém dados semânticos de servidores e os renderiza em gráficos ou elementos HTML 4. Além disso, a Web Semântica também encontra espaço em diversas outras aplicações dentro da Web atual, tais como: 1 Wikipedia: 2 DBPedia: 3 E-culture: 4 Sgvizler:

15 Capítulo 2. Revisão Bibliográfica 15 Sistemas pessoais inteligentes (agentes) que ajudariam constantemente seus portadores nas mais diversas tarefas que possam ser automatizadas dentro da WWW [2] [3]; Aprimoramento nas redes sociais. A experiência que uma rede social proporcionaria, caso fossem criadas ontologias e agentes pessoais pudessem ser utilizados no levantamento e compartilhamento de informações, poderia ser potencializada [10]; Novo paradigma na educação à distância [2]; Sistemas e-commerce inteligentes, que poderiam diminuir consideravelmente o tempo de busca por produtos [2]. Para demonstrar a vantagem em sistemas e-commerce, considere o seguinte cenário: João deseja comprar uma coletânea de DVD s de uma determinada série televisiva na internet, e exige que o produto atenda à alguns critérios básicos para a compra de acordo com as suas preferências e gostos. No atual ponto de evolução da Web, a melhor opção de João seria buscar nos sites de diferentes varejistas, comparando preços, tempo e custo do envio. Ele poderia também procurar um site que compare opções de preços e envios dentre vários varejistas de uma vez, o que não é difícil de se encontrar atualmente. De qualquer maneira, João teria de fazer a maior parte do trabalho, saindo em busca da sua melhor opção de compra e então tomar sua decisão fazendo seu pedido sozinho. Com a Web Semântica, João contaria com mais uma opção, poderia colocar suas preferências em um agente, o qual buscaria na Web, encontraria a melhor opção e faria seu pedido. O agente poderia então abrir um programa de finanças pessoais no computador de João e registrar a quantia monetária que gastou, e ainda poderia marcar a data em que seus DVD s devem chegar em seu calendário. Um agente mais complexo também aprenderia seus hábitos e preferências, por exemplo, se caso João tivesse uma experiência ruim ao realizar uma compra em um site em particular, o agente aprenderia a não usar aquele site em suas futuras buscas Agentes Um agente é um sistema computacional automatizado capaz de coletar informações, interpretá-las corretamente e compartilhá-las com outros sistemas, inclusive com outros agentes dentro da Web Semântica. A presença efetiva desses programas aumentará a capacidade de interpretação de dados na Web e tornará vários serviços automatizados disponíveis, dando a visão do real poder da Web Semântica [3].

16 Capítulo 2. Revisão Bibliográfica 16 Agentes também se comunicariam entre si para trocar informações, tanto para uma simples prova de conceito ou verificação de autenticidade de dados via assinatura digital, bem como na forma de produtores e consumidores: ambos compartilhando ontologias necessárias para a determinação de termos comuns afim de desenvolver novas capacidades de raciocínio [3]. Há diferentes formas de implementação de um agente, de acordo com a complexidade exigida para o seu propósito, mas todas elas com capacidade para interpretação e inferência de informações disponibilizadas na Web, descritas formalmente a partir da linguagem comum de comunicação. Para isso, o uso de conceitos da inteligência artificial, por mais básicos que sejam, se tornam um pré-requisito na construção dessas ferramentas. Por outro lado, não se mostra necessário a utilização de uma IA avançada, uma vez que a utilização de conceitos básicos já atenderia grande parte do proposto pela Web Semântica [3] Falácias da Web Semântica A Web Semântica tem sido tema de discussões polêmicas a respeito da sua real utilidade e praticidade. Alguns pontos centrais se mostraram comuns entre as diversas críticas, que muitas vezes dão margem à suposições equivocadas sobre o modelo da Web Semântica, as quais foram denominadas de falácias da Web Semântica [2], são elas: A Web Semântica impõe padrões restritos quanto a formatação de dados através do RDF e do OWL: Na verdade, as linguagens RDF e OWL são completamente neutras a esse respeito, dando ao usuário a capacidade de construir suas próprias definições de termos e seus significados. O único ponto que pode ser considerado restrito é a própria sintaxe das linguagens, o que é mais do que esperado para uma interoperabilidade mundial. Aqui, cabe uma comparação com a linguagem HTML. Para formatar uma página o usuário não precisa respeitar layouts pré-determinados, pelo contrário, o HTML determina tags fixas mas que podem ser usadas conforme a necessidade e vontade do usuário. A Web Semântica requer o uso de significados únicos e pré-definidos para os termos utilizados pelos usuários: Essa falácia talvez seja a mais presente e a que gere mais dúvidas. Ela afirma que seria necessário a definição de apenas uma ontologia e que a mesma seria a referência global para significados de termos dentro da Web, o que anularia a capacidade de construção de ontologias por usuários personalizadas por aplicação. O que torna essa afirmação uma grande falácia é o fato de termos o mapeamento de ontologias como parte do núcleo da Web Semântica, o qual abre espaço para a definição de milhares de ontologias diferentes. É esperado que tais mapeamentos não sejam tão perfeitos como na teoria, contendo

17 Capítulo 2. Revisão Bibliográfica 17 definições parciais ou até incorretas e dependentes de contexto, porém, apesar disso, atenderiam boa parte dos requisitos da Web Semântica. A Web Semântica exige que todos os usuários entendam em detalhes a complicada representação formal de conhecimento: O erro nessa afirmação está na palavras "todos". Realmente a Web Semântica possui definições complexas sobre representação de conhecimento, como a construção semânticas do RDF e da OWL. A formação de boas e bem estruturadas ontologias dependem de certas especialidades na engenharia do conhecimento, o que cria a necessidade de usuários com esse conhecimento para essa tarefa. Mas, para a maioria dos usuários, a Web Semântica funcionaria como uma camada operando em modo caixa-preta. A Web Semântica necessita que todas as páginas existentes na Web sejam adicionadas de marcações manuais para a formatação adequada de conteúdo: Se fosse verdadeira, essa falácia realmente tornaria o projeto da Web Semântica um completo fracasso. Seria impraticável a tarefa de se remontar todas as páginas Web existentes em conformidade ao formato necessário para garantir a acessibilidade da informação pelas máquinas. A alternativa nesse caso seria a utilização de extratores e analisadores sintáticos, que extrairíam o conteúdo de uma página Web e montaria uma estrutura adequada como resultado. Essa abordagem foi utilizada como parte da implementação proposta nesse trabalho e se mostrou completamente viável. 2.2 Documentos Web Estruturados: XML O HTML (Hyper Text Markup Language), é a linguagem mais utilizada para descrever conteúdo na Internet desde a sua concepção em meados dos anos 90. Se originou da SGML (Standart Generalized Markup Language), a qual constitui um padrão internacional (ISO 8879) para métodos de representação de informações que são legíveis tanto para humanos quanto para computadores. Um arquivo HTML descreve a formatação de conteúdo para exibição em um navegador, ou seja, como esse conteúdo será mostrado para o usuário ao acessar a página que o HTML está formatando (conteúdo + layout). A XML (Extensible Markup Language) é outro tipo de linguagem dentro dos padrões SGML, a qual foi desenvolvida para suprir algumas deficiências que o HTML apresenta. Diferentemente do HTML, a XML é voltada para estruturação de dados, mantendoos em uma formato hierárquico bem definido e, principalmente, acessível por máquinas - um dos pontos cruciais na construção da Web Semântica. Outra principal diferença estre essas duas linguagens é que a XML possui o recurso da extensibilidade. A linguagem HTML define suas tags que são usadas para formatação e as mesmas são fixas, ou seja, não é possível a personalização ou criação de novas tags.

18 Capítulo 2. Revisão Bibliográfica 18 Já a XML permite que seja definido um vocabulário próprio para cada aplicação sendo, portanto, uma metalinguagem de marcação. Comunidades e setores de negócios já definem vocabulários especializados para a criação de aplicações XML, como por exemplo na matemática (MathML), bioinformática (BSML), recursos humanos (HRML), astronomia (AML), notícias (NewsML) e investimento (IRML) [2]. A estrutura de um arquivo XML é formada por um cabeçalho obrigatório, seguido de algumas referências externas para outros documentos, que são opcionais, e finalmente o corpo do documento, que deve estar dentro de um único elemento chamado de raiz (root). Dentro da raiz pode haver uma estrutura de tamanho qualquer respeitando um modelo hierárquico. O código 2.1 apresenta um exemplo básico de como um documento XML é estruturado. 1 <? xml version =" 1.0 " encoding ="UTF -8"?> 2 3 < character > 4 < firstname > Walter </ firstname > 5 < middlename > Hartwell </ middlename > 6 < lastname >White </ lastname > 7 <alias > Heisenberg </ alias > 8 </ character > Código 2.1 Estrutura XML Na linha 1 temos o cabeçalho do arquivo, que como dito anteriormente, é obrigatório, o atributo encoding é opcional porém bastante recomendado. O elemento raiz do arquivo está presente na linha 3, definindo o corpo do documento que se extende até a linha 8, onde se encontra o fechamento do elemento raiz. No corpo (linhas 4-7), temos a definição de quatro elementos que se encontram no mesmo nível hierárquico, todos contendo tags de abertura e de fechamento, outra obrigatoriedade para um documento XML bem estruturado. O texto entre uma tag de abertura e uma de fechamento é o valor literal da propriedade definida pela tag, por exemplo, a palavra "Walter" é o valor da propriedade <firstname>, linha 4. Uma explicação mais detalhada sobre a XML e como ela se difere do HTML pode ser encontrada no apêndice A. Nas próximas seções vamos apresentar as linguagens e frameworks que utilizam a XML e a importância dessas na implementação dos conceitos da Web Semântica. 2.3 Descrevendo Recursos Web: RDF O RDF (Resource Descripion Framework), framework para descrição de recursos, é um modelo de dados para descrever recursos (dados e meta-dados) que define uma construção em blocos.

19 Capítulo 2. Revisão Bibliográfica 19 Um bloco é uma tripla objeto-atributo-valor chamada de declaração (statement). No RDF todas as informações são representadas por declarações no formato: (objeto, atributo, valor). O RDF possui domínio independente, isto é, nenhuma suposição é feita sobre um domínio particular. Portanto, cabe ao usuário definir sua própria terminologia numa linguagem de esquema chamada RDF Schema. O nome RDF Schema pode gerar a suposição errada de que o RDF Schema possui uma relação com o RDF, similar à relação entre XML e XML Schema; XML Schema define a estrutura do documento XML, já o RDF Schema define o vocabulário do documento RDF. Nesta seção vamos utilizar o domínio de filmes para os exemplos. Figura 2 RDF e RDF Schema A figura 2 apresenta a separação entre RDF e RDF Schema. Na parte superior da figura o RDF Schema define o vocabulário, as classes são representadas por elipses, como Director e Person, as arestas representam as propriedades pré-definidas, como Type e subclassof, e o retângulo representa a propriedade do domínio Creator. Na parte inferior temos uma declaração RDF que utiliza o vocabulário. Num documento RDF Schema podemos definir um vocabulário, especificar quais

20 Capítulo 2. Revisão Bibliográfica 20 objetos possuem quais propriedades, quais valores essas propriedades podem assumir e descrever relações entre objetos. Por exemplo: Director is a subclass of Person. Esse fato significa que todo Director é também um Person. Nota-se que há um entendimento prévio do significado de is a subclass of (é uma sub-classe de), assim a aplicação deve interpretar o termo de uma maneira pré-definida. Considere a seguinte afirmação: Heat was direct by Michael Mann. Podemos escrever o seguinte documento RDF 2.2 para o nosso exemplo anterior, que declara que o filme "Heat" foi dirigido por "Michael Mann". 1 <? xml version =" 1.0 " encoding ="UTF -8"?> 2 3 < rdf:rdf 4 xmlns:rdf =" http: // /1999/02/22 - rdf - syntax -ns#" > 5 6 < rdf:description rdf:about ="# Heat "> 7 <directed -by rdf:resource ="# Michael Mann "/> 8 </ rdf: Description > 9 10 </ rdf:rdf > Código 2.2 Exemplo documento RDF A primeira linha do código 2.2 descreve que estamos usando a sintaxe XML, o encoding é opcional, mas declarar a codificação é uma boa prática. A sintaxe escolhida e recomendada pelo W3C para o RDF é a XML, mas outras sintaxes de representação de RDF não baseadas em XML são possíveis. As linhas 3-10 indicam que o documento possui declarações RDF, a propriedade xmlns na tag <rdf:rdf> indica os namespaces usados no documento. A linha 6 indica uma declaração com a tag <rdf:description>, sobre o recurso "#Heat", indentificado pela tag <rdf:about>. A linha 7 declara o diretor do recurso, abreviando a declaração no formato de tripla temos: (#Heat, directed-by, #Michael Mann). O framework RDF e a linguagem RDF Schema são descritos com mais detalhes no apêndice B, com informações sobre a linguagem para consultas SPARQL, axiomas para RDF Schema e inferências sobre recursos RDF.

21 Capítulo 2. Revisão Bibliográfica RDF vs. XML XML é uma meta-linguagem para definir marcações (markups) e, como vimos na seção 2.2, provê um framework uniforme e um conjunto de ferramentas para análise sintática e troca de dados/metadados entre aplicações, isto é, permite que dados na Web sejam acessíveis por máquinas. Apesar de bastante utilizada na Web, a linguagem XML apresenta duas deficiências na Web Semântica: (1) possível ambiguidade nas declarações e (2) não fornece uma maneira de definir semânticas [4] [2]. Essas deficiências serão esclarecidas a seguir. Para esclarecer (1), considere o seguinte fato: Heat was direct by Michael Mann. Existem diversas formas de representar essa informação em XML. O código 2.3 apresenta três. 1 <movie > 2 <title > Heat </ title > 3 < director > Michael Mann </ director > 4 </ movie > 5 6 < director > 7 <movie > Heat </ movie > 8 < name > Michael Mann </ name > 9 </ director > < director > 12 < movie > Heat </ movie > 13 < details > 14 < name > Michael Mann </ name > 15 </ details > 16 </ director > Código 2.3 Representação XML de três diferentes formas No código 2.3 temos três construções XML que para uma pessoa possuem o mesmo significado, porém uma máquina analisando os documentos produz diferentes interpretações. Sem um XML Schema, poderíamos deduzir do código 2.3 que o nome do filme "Heat" é "Michael Mann" e que "Heat" é um diretor, porém essa afirmação não é a correta. Para que todos os documentos sejam interpretados corretamente, é necessário a criação de um XML Schema que expresse as diferentes construções. Porém um documento XML pode ser mapeado em diversas árvores lógicas, o que implica na conversão de todas as possibilidades de representações de um fato em uma única declaração [4]. No RDF a

22 Capítulo 2. Revisão Bibliográfica 22 forma de escrever uma declaração é padronizada, resolvendo esse problema [2]. O modelo RDF permite encontrar afirmações (triplas) em documentos e distinguir sujeitos de objetos de maneira padronizada [4], como visto na seção 2.3. Outro problema na XML é que não há maneira de definir semânticas nos documentos, vamos esclarecer essa deficiência com o código < person > Robert de Niro </ person > 2 < director > Michael Mann </ director > 3 <movie title =" Heat " > 4 <directed -by > Michael Mann </ directed -by > 5 </ movie > Código 2.4 Exemplo XML O código 2.4 declara que "Robert de Niro" é uma pessoa e que "Michael Mann" é um diretor, e dirigiu o filme "Heat". Suponha que queiramos todas as instâncias da classe Person do documento. Em um analisador sintático XML, teríamos como resultado apenas "Robert de Niro", no ponto de vista XML o resultado está correto, mas a resposta é semanticamente insatisfatória, pois poderíamos incluir "Michael Mann" como pessoa, pois todos os diretores são pessoas, ou ainda filmes são dirigidos apenas por pessoas. Esse tipo de informação utiliza um modelo semântico de um domínio particular e não pode ser representado em um documento XML ou RDF, mas sim em um documento RDF Schema. Por isso, o RDF Schema torna informações semânticas acessíveis por máquinas (machine-accessible), de acordo com a visão da Web Semântica. 2.4 Linguagem de Ontologia Web: OWL Mesmo com toda a descritividade que o RDF proporciona, ele ainda possui algumas limitações. O próprio RDF e o RDF Schema combinados oferecem a possibilidade de construção de triplas, predicados simples com uma estruturação de classes e sub-classes, bem como hierarquia de propriedades com seus domínios e suas possíveis extensões, como descrito na seção 2.3. Porém, não é o suficiente para uma implementação completa no framework da Web Semântica [2]. Devido à essas limitações, uma linguagem muito mais robusta foi desenvolvida para atender aos requisitos da Web Semântica em sua visão integra, chamada OWL 5 (Web Ontology Language), a qual fornece determinadas características que dão uma maior carga ontológica, isto é, um modelo descritivo mais poderoso quando se trata de definições e relações de ou entre recursos. 5 OWL:

23 Capítulo 2. Revisão Bibliográfica 23 Desse modo, a OWL provê a criação de um vocabulário adicional para descrição de propriedades e classes, como relação entre classes, cardinalidades, igualdade, distinção e inúmeros outros recursos, oferecendo a expressividade necessária na representação de ontologias mais complexas. Contudo, a OWL utiliza a mesma sintaxe do RDF e, por isso, também é baseada na linguagem XML Sub-linguagens da OWL Existem três classificações dentro da OWL, cada uma delas apresenta uma sublinguagem onde todas se derivaram da própria OWL [2], são elas: OWL-Lite: Sub-linguagem que contém uma sintática mais simples. Seu propósito está na descrição de restrições e hierarquia de classes simples; OWL-DL: Se apresenta como sendo expressivamente mais robusta em comparação com a OWL-Lite e baseia-se em lógica descritiva, um fragmento de lógica de primeira ordem, adicionando a possibilidade de raciocínio automatizado. A sigla DL em seu nome se deve à essa correspondência com a lógica descritiva (Description Logic); OWL-Full: A mais completa e expressiva das três sub-linguagens OWL. Seu uso é destinado à situações mais complexas onde a alta expressividade é o mais importante. Utilizando OWL-Full, não é possível realizar inferências em uma ontologia. Cada sub-linguagem é um extensão de sua predecessora, ou seja, cada ontologia válida em OWL-Lite é uma ontologia válida em OWL-DL, onde esta por sua vez é uma ontologia válida em OWL-Full, sendo que essa relação não se torna simétrica em momento algum Exemplos Abaixo seguem exemplos de OWL: 1 < rdf: Description rdf: about ="# Instinto Secreto " > 2 < owl:sameas rdf:resource ="#Mr Brooks "/> 3 </ rdf: Description > Código 2.5 Exemplo OWL 1 1 < owl:class rdf:id =" Professor "> 2 < owl:sameas rdf:resource =" Docente "/> 3 </ owl:class > Código 2.6 Exemplo OWL 2

24 Capítulo 2. Revisão Bibliográfica 24 Ambos os códigos 2.5 e 2.6 definem relações de igualdade entre dois recursos através da propriedade <owl:sameas>. O código 2.5 constrói uma relação de igualdade em nível de identificador, ou seja, duas URI s identificando um mesmo recurso, especificamente nesse caso o filme "#Mr Brooks" passa a ser também identificado pelo seu título traduzido para o português, "#Instinto Secreto". No código 2.6 temos a definição de sinônimos em nível de classe, onde definimos que a classe Professor e a classe Docente representam exatamente a mesma coisa. De maneira semelhante, poderíamos definir distinções entre recursos utilizando a propriedade <owl:differentfrom> ou <owl:distinctmembers>. Além dessas propriedades, a OWL possui diversos outros recursos, dos mais simples aos mais complexos, para a construção de ontologias mais robustas. Nesse trabalho não iremos tão além na descrição da OWL e todas as suas inúmeras possibilidades, pois está fora do escopo deste texto, bem como da implementação proposta. Algumas das construções da linguagem: equivalentclass, classes equivalentes. equivalentproperty, propriedades equivalentes. sameas, igualdade de recursos. TransitiveProperty, propriedade é transitiva. SymmetricProperty, propriedade é simétrica. FunctionalProperty, propriedade é uma função. unionof, união de classes e restrições. complementof, complemento de classes e restrições. intersectionof, interseção de classes e restrições. 2.5 SWI-Prolog e a Web Semântica A programação em lógica possui diversas propriedades positivas em relação à Web Semântica: segurança e gerenciamento automático de memória (essenciais para a programação web), processamento de linguagens naturais, raciocínio automatizado simples, paradigma de programação com restrições e uma maneira natural de lidar com a estrutura em triplas do RDF [11]. Existem diversas implementações da linguagem de programação em lógica Prolog, uma delas é o SWI-Prolog, Sociaal-Wetenschappelijke Informatica-Prolog, utilizada em

25 Capítulo 2. Revisão Bibliográfica 25 diversos projetos ligados à Web Semântica, como o projeto E-culture 6, desenvolvido pela Universidade Livre de Amsterdã, que permite o acesso à múltiplas coleções de dados de diversos museus. O SWI-Prolog é uma implementação desenvolvida desde 1987, sobre a licença GNU Public License, por Jan Wielemaker 7. A importância do SWI-Prolog na Web Semântica se dá devido a sua adaptação às recomendações do W3C, com suas bibliotecas de armazenamento e acesso a documentos RDF e RDF Schema, SPARQL, e outros protocolos implementados, e a própria linguagem em si que permite uma interface simples para implementação de inferências. As bibliotecas para a Web Semântica se encontram no pacote semweb do SWI- Prolog, que possui uma biblioteca para armazenamento de RDF de mais alto desempenho ligado à programação em lógica [12]. Outras bibliotecas fornecem métodos para leitura e escrita de documentos RDF/XML. O pacote semweb possui todos os requisitos para a implementação de um agente capaz de obter, interpretar e produzir RDF s. No capítulo 4 iremos apresentar um agente implementado em Prolog utilizando o pacote semweb, para demonstrar a prática dos conceitos da Web Semântica. O apêndice C apresenta detalhes do pacote semweb e da linguagem Prolog. 6 E-culture: 7 SWI-Prolog:

26 26 3 Proposta do Trabalho A maior dificuldade no estudo da Web Semântica é encontrar exemplos de implementações de seus conceitos, isto é, implementações de informações prontamente processáveis por um computador, que podem ser usadas para responder consultas que atualmente requerem uma interação humana entre o conteúdo de várias páginas retornadas por um motor de busca [3]. A implementação proposta nesse trabalho é construir um agente capaz de obter e interpretar dados modelados no framework RDF e RDF Schema com o intuito de esclarecer a prática dos conceitos apresentados. Para isso, será apresentado um sistema de extração de documentos RDF. Em seguida, será apresentada uma modelagem de dados num RDF Schema. Por fim, um agente capaz de interpretar e inferir informações a partir dos RDF s. Semântica. De maneira geral o objetivo é demonstrar as vantagens e capacidades da Web Primeiramente, definimos um domínio do conhecimento: o compartilhamento de arquivos em uma rede utilizando BitTorrent. O BitTorrent é um protocolo de compartilhamento de arquivos projetado para se integrar com a Web, criado por Bram Cohen em Ele é uma extensão do protocolo peer-to-peer (P2P) que opera sobre o TCP (Transmission Control Protocol) [13]. O compartilhamento de arquivos é feito baseado em arquivos torrents. Um arquivo torrent possui apenas informações básicas sobre os arquivos que estão sendo compartilhados, como: tamanho dos arquivos, mapeamento dos fragmentos em que os arquivos estão divididos, nomes (URL s dos trackers), número de downloads e uploads, identificador do peer, e outras informações, que não explicitam o significado dos arquivos que ele representa. Para melhorar o compartilhamento de arquivos torrents, muitos Web Servers dedicados a BitTorrent trackers 1 foram criados, fornecendo informações sobre os arquivos que os torrents representam, além dos torrents em si. Um exemplo é o servidor Web do site Pirate Bay 2, que mantém uma base de arquivos torrents com a intenção de facilitar a busca na rede BitTorrent. O BitTorrent tracker Pirate Bay será o caso de estudo desse trabalho. 1 Um BitTorrent tracker é um servidor que auxilia na comunicação entre peers usando o protocolo BitTorrent. 2 Pirate Bay:

27 Capítulo 3. Proposta do Trabalho 27 Como o domínio dos arquivos na rede BitTorrent é muito vasto, serão utilizados nesse estudo apenas torrents relacionados à filmes. Os sistemas de busca de torrents se baseiam simplesmente em comparações de palavras-chaves dos nomes dos torrents, o que pode não satisfazer semanticamente certas buscas. Por isso vamos implementar um sistema de sugestão de torrents. A sugestão de torrents ocorrerá de duas maneiras: (1) sugerir torrents que representem o mesmo conteúdo e (2) sugerir torrents relacionados pelos seus conteúdos. Assim temos o seguinte cenário: uma base de dados já existente a ser modelada num RDF Schema, extraída num formato RDF e desenvolvida semanticamente. Uma segunda base de dados também foi escolhida: a biblioteca sobre filmes IMDB 3 (Internet Movie Database). O IMDB é um site que possui informações sobre filmes, no qual grande parte do conteúdo é desenvolvido e aperfeiçoado por uma comunidade. Visto que serão utilizados apenas torrents que representam filmes, o IMDB irá ajudar a explorar o conceito de relacionamento entre documentos RDF. Também serão extraídas informações do IMDB no framework RDF. Sendo assim, a base de dados a ser tratada será composta por documentos RDF s que representam torrents e filmes, procurando relacioná-los de uma maneira inteligente. É importante destacar que os documentos RDF s expostos não garantem acesso aos torrents em si, eles apenas representam os torrents e filmes. Tendo definido o domínio do conhecimento, definiremos as ações do agente. Como foi dito, o objetivo é implementar um agente capaz de obter e interpretar documentos RDF s e inferir informações sobre as declarações para sugerir torrents. O agente terá três comportamentos implementados: 1. Encontrar torrents que representem o mesmo conteúdo, ou seja, torrents equivalentes; 2. Encontrar torrents que possuam algum relacionamento pelo conteúdo que representam, ou seja, torrents relacionados; 3. Encontrar informações sobre o conteúdo que o torrent representa. por exemplo: De maneira geral, o agente irá responder a consultas sobre um torrent fornecido, Dado o torrent: "Den andalusiska hunden (Buñuel & Dali 1929)DivX". 3 IMDB:

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados 1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação Internet Gabriela Trevisan Bacharel em Sistemas de Infomação Histórico da Web World Wide Web o nosso www é o meio de comunicação mais utilizado no mundo atualmente. Através da WWW qualquer usuário conectado

Leia mais

Web Semântica. Web Semântica. uma introdução @yaso

Web Semântica. Web Semântica. uma introdução @yaso Web Semântica uma introdução @yaso O que é SEMÂNTICA Semântica é o estudo do signifcado. Incide sobre a relação entre signifcantes, tais como palavras, frases, sinais e símbolos, e o que eles representam,

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Web de hoje (2.0) Porquê WEB 2.0?

Web de hoje (2.0) Porquê WEB 2.0? WEB 2.0 Conceitos O termo Web 2.0 refere-se a mudança para uma Internet como plataforma e um entendimento das regras para obter sucesso nesta nova plataforma. Segundo Tim O'Reilly, um dos criadores do

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Agregadores de Conteúdo

Agregadores de Conteúdo Agregadores de Conteúdo São programas ou sites capazes de interpretar e mostrar o conteúdo dos Feeds RSS. Essa é uma forma de facilitar a leitura de vários sites e blogs, acessando o que há de novo em

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

Desenvolvendo para WEB

Desenvolvendo para WEB Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

Leia mais

Ontologias. Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília

Ontologias. Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília Ontologias Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília Origem Teoria sobre a natureza da existência Ramo da filosofia que lida com a natureza e organização da realidade.

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Introdução a listas - Windows SharePoint Services - Microsoft Office Online Page 1 of 5 Windows SharePoint Services Introdução a listas Ocultar tudo Uma lista é um conjunto de informações que você compartilha com membros da equipe. Por exemplo, você pode criar uma folha de inscrição

Leia mais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

Histórico de Revisão Data Versão Descrição Autor

Histórico de Revisão Data Versão Descrição Autor H6Projetos Documento de Requisitos Versão 1.3 Histórico de Revisão Data Versão Descrição Autor 05/09/2013 1.0 Preenchimento do Capítulo 2 Requisitos Funcionais Evilson Montenegro 26/09/2013 1.1 Preenchimento

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

A PÁGINA DISCIPLINAR DE MATEMÁTICA DO PORTAL DIA A DIA EDUCAÇÃO

A PÁGINA DISCIPLINAR DE MATEMÁTICA DO PORTAL DIA A DIA EDUCAÇÃO A PÁGINA DISCIPLINAR DE MATEMÁTICA DO PORTAL DIA A DIA EDUCAÇÃO Resumo: Dolores Follador Secretaria de Estado da Educação do Paraná e Faculdades Integradas do Brasil - Unibrasil doloresfollador@gmail.com

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

Criação e publicação de um dataset de dados interligados das edições passadas do Simpósio Brasileiro de Banco de Dados

Criação e publicação de um dataset de dados interligados das edições passadas do Simpósio Brasileiro de Banco de Dados U NIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 2 0 1 2. 2 Criação e publicação de um dataset de dados interligados das edições passadas do Simpósio Brasileiro

Leia mais

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Manual dos Serviços de Interoperabilidade

Manual dos Serviços de Interoperabilidade MINISTÉRIO DO PLANEJAMENTO, ORÇAMENTO E GESTÃO Secretaria de Logística e Tecnologia da Informação Manual dos Serviços de Interoperabilidade Sumário Lista de Figuras...3 Lista de Tabelas...4 Introdução...5

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

HTML Página 1. Índice

HTML Página 1. Índice PARTE - 1 HTML Página 1 Índice HTML A HISTÓRIA... 2 O COMEÇO E A INTEROPERABILIADE... 3 Primeira Página... 4 Entendendo seu código... 5 Abrindo o código fonte da sua página... 6 Comentários na página...

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro

Leia mais

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE 1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)

Leia mais

Mídias sociais como apoio aos negócios B2C

Mídias sociais como apoio aos negócios B2C Mídias sociais como apoio aos negócios B2C A tecnologia e a informação caminham paralelas à globalização. No mercado atual é simples interagir, aproximar pessoas, expandir e aperfeiçoar os negócios dentro

Leia mais

HTML5. Prof. Salustiano Rodrigues de Oliveira saluorodrigues@gmail.com www.profsalu.com.br

HTML5. Prof. Salustiano Rodrigues de Oliveira saluorodrigues@gmail.com www.profsalu.com.br HTML5 Prof. Salustiano Rodrigues de Oliveira saluorodrigues@gmail.com www.profsalu.com.br HTML5 HTML5 é considerada a próxima geração do HTML e suas funcionalidades inovadoras o tornam uma alternativa

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

DWEB. Design para Web. Fundamentos Web I. Curso Superior de Tecnologia em Design Gráfico

DWEB. Design para Web. Fundamentos Web I. Curso Superior de Tecnologia em Design Gráfico DWEB Design para Web Curso Superior de Tecnologia em Design Gráfico Fundamentos Web I E não vos conformeis com este século, mas transformai-vos pela renovação da vossa mente, para que experimenteis qual

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. Manual de Instruções ECO Editor de Conteúdo Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. O ECO é um sistema amigável e intui?vo, mas abaixo você pode?rar eventuais dúvidas e aproveitar

Leia mais

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA ETEC PROF. MÁRIO ANTÔNIO VERZA CURSO TÉCNICO EM INFORMÁTICA PARA INTERNET

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA ETEC PROF. MÁRIO ANTÔNIO VERZA CURSO TÉCNICO EM INFORMÁTICA PARA INTERNET CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA ETEC PROF. MÁRIO ANTÔNIO VERZA CURSO TÉCNICO EM INFORMÁTICA PARA INTERNET WEBSITE MUNDO MULHER GABRIELA DE SOUZA DA SILVA LUANA MAIARA DE PAULA SILVA

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Artur Petean Bove Júnior Tecnologia SJC

Artur Petean Bove Júnior Tecnologia SJC Artur Petean Bove Júnior Tecnologia SJC Objetivo O objetivo do projeto é especificar o desenvolvimento de um software livre com a finalidade de automatizar a criação de WEBSITES através do armazenamento

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

PADRÕES PARA O DESENVOLVIMENTO NA WEB

PADRÕES PARA O DESENVOLVIMENTO NA WEB PADRÕES PARA O DESENVOLVIMENTO NA WEB Ederson dos Santos Cordeiro de Oliveira 1,Tiago Bonetti Piperno 1, Ricardo Germano 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR- Brasil edersonlikers@gmail.com,

Leia mais

Uso de taxonomias na gestão de conteúdo de portais corporativos.

Uso de taxonomias na gestão de conteúdo de portais corporativos. Gestão de Conteúdo web através de ontologias: conceitos e aplicações Fernando Silva Parreiras Contextualização O que? Uso de taxonomias na gestão de conteúdo de portais corporativos. Quem? Gerentes, consultores

Leia mais

Web Design. Prof. Felippe

Web Design. Prof. Felippe Web Design Prof. Felippe 2015 Sobre a disciplina Fornecer ao aluno subsídios para o projeto e desenvolvimento de interfaces de sistemas Web eficientes, amigáveis e intuitivas. Conceitos fundamentais sobre

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Introdução Projeto de Arquitetura (Cap 11 - Sommerville) UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Até agora, estudamos: Os

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

Aplicação Prática de Lua para Web

Aplicação Prática de Lua para Web Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio

Leia mais

Web Design Aula 01: Conceitos Básicos

Web Design Aula 01: Conceitos Básicos Web Design Aula 01: Conceitos Básicos Professora: Priscilla Suene priscilla.silverio@ifrn.edu.br Motivação Motivação Motivação Motivação Roteiro Introdução Papéis e Responsabilidades Construindo um site

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 11 Conceitos de Orientação a Objetos Objetivos do Capítulo Introduzir os conceitos fundamentais da Programação Orientada a Objetos. Apresentar o significado dos objetos e das classes no contexto

Leia mais

LABORATÓRIO WIRESHARK: DNS

LABORATÓRIO WIRESHARK: DNS LABORATÓRIO WIRESHARK: DNS Conforme descrito na seção 2.5 do livro, o Domain Name System (DNS) traduz nomes de hosts para endereços IP, cumprindo um papel fundamental na infra-estrutura da Internet. Neste

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 7 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Aprender sobre a modelagem lógica dos dados. Conhecer os

Leia mais

4 Segmentação. 4.1. Algoritmo proposto

4 Segmentação. 4.1. Algoritmo proposto 4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados Modelo para organização dos dados de um BD. define um conjunto de conceitos para

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional Introdução à Linguagem JAVA Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação Laboratório de Visão Computacional Vantagens do Java Independência de plataforma; Sintaxe semelhante às linguagens

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Cruzeiro SP 2008 FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Projeto de trabalho de formatura como requisito

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA Autores: Claudiléia Gaio BANDT; Tiago HEINECK; Patrick KOCHAN; Leila Lisiane ROSSI; Angela Maria Crotti da ROSA Identificação autores: Aluna do Curso

Leia mais

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA Jeferson Boesing 1 ; Tiago Heineck 2 ; Angela Maria Crotti da Rosa 3 ; Leila Lisiane Rossi 4 INTRODUÇÃO Alunos

Leia mais

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: edmar.moretti@terra.com.br ou edmar.moretti@gmail.com

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: edmar.moretti@terra.com.br ou edmar.moretti@gmail.com III Jornada Latinoamericana e do Caribe do gvsig Artigo: Integração do software i3geo com o gvsig Autor: Edmar Moretti Resumo: O i3geo é um software para a criação de mapas interativos para internet qu

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução Prof. Humberto Brandão humberto@dcc.ufmg.br aula disponível no site: http://www.bcc.unifal-mg.edu.br/~humberto/ Universidade Federal de

Leia mais

Sphinx Scanner Informações gerais V 5.1.0.8

Sphinx Scanner Informações gerais V 5.1.0.8 Sphinx Scanner Informações gerais V 5.1.0.8 Pré-requisitos: Possuir modalidade scanner no software Sphinx A SPHINX Brasil propõe uma solução de leitura automática de questionários por scanner. O Sphinx

Leia mais

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança 3 SERVIÇOS IP 3.1 Serviços IP e alguns aspectos de segurança Os serviços IP's são suscetíveis a uma variedade de possíveis ataques, desde ataques passivos (como espionagem) até ataques ativos (como a impossibilidade

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Padrões, Ferramentas e Boas Práticas no Desenvolvimento de Software para Web Semântica

Padrões, Ferramentas e Boas Práticas no Desenvolvimento de Software para Web Semântica Padrões, Ferramentas e Boas Práticas no Desenvolvimento de Software para Web Semântica Ernesto F. Veiga, Márcio V. Oliveira Sena, Renato de F. Bulcão Neto ernestofonseca@inf.ufg.br marciovinicius@inf.ufg.br

Leia mais

Web Services. Autor: Rômulo Rosa Furtado

Web Services. Autor: Rômulo Rosa Furtado Web Services Autor: Rômulo Rosa Furtado Sumário O que é um Web Service. Qual a finalidade de um Web Service. Como funciona o serviço. Motivação para o uso. Como construir um. Referências. Seção: O que

Leia mais

Prof. Ravel Silva (https://www.facebook.com/professorravelsilva) SIMULADO 02 ESCRIVÃO PF

Prof. Ravel Silva (https://www.facebook.com/professorravelsilva) SIMULADO 02 ESCRIVÃO PF Orientações aos alunos: 1. Este simulado visa auxiliar os alunos que estão se preparando para o cargo de Policial Rodoviário Federal. 2. O Simulado contém 10 questões estilo CESPE (Certo e Errado) sobre

Leia mais

MBA Inteligência Competitiva Com ênfase em BI/CPM. Metadados

MBA Inteligência Competitiva Com ênfase em BI/CPM. Metadados MBA Inteligência Competitiva BI/CPM 1 Data Warehousing PÓS-GRADUAÇÃO MBA Inteligência Competitiva Com ênfase em BI/CPM Metadados Andréa Cristina Montefusco (36927) Hermes Abreu Mattos (36768) Robson Pereira

Leia mais

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto Conceitos de Linguagens de Roteiro: Apresentação do plano de ensino; Apresentação do plano de

Leia mais

MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA

MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA SACI LIVRE SISTEMA DE ADMINISTRAÇÃO DE CONTEÚDO INSTITUCIONAL

Leia mais