OntoDig: Um sistema multi-agente para reutilização de ontologias
|
|
- Luísa Viveiros Schmidt
- 8 Há anos
- Visualizações:
Transcrição
1 OntoDig: Um sistema multi-agente para reutilização de ontologias Pedro Oliveira Departamento de Engenharia Informática Faculdade de Ciências e Tecnologia Universidade de Coimbra Resumo. A reutilização de conhecimento expresso em ontologias é uma das visões da Web Semântica. Com a proliferação de ontologias livremente disponíveis, torna-se necessário desenvolver mecanismos que permitam a sua reutilização. Neste relatório é apresentada a segunda fase de desenvolvimento do OntoDig, um sistema multi-agente para reutilização de ontologias. O seu objectivo é, tendo uma lista de termos e ontologias, construir uma nova ontologia que exprima o conhecimento representado por esses termos. Palavras-chave: Web Semântica, Reutilização de Conhecimento, Sistemas Multi-agente, Ontologias 1 Introdução Na disciplina de Web Semântica, leccionada o semestre passado, foi desenvolvido um protótipo de um sistema multi-agente para reutilização de ontologias. O seu objectivo era integrar a plataforma Semantic Reuse System (SRS) [1], colmatando algumas das suas lacunas. Neste trabalho foi proposto estender e melhorar o protótipo desenvolvido, para permitir a sua utilização no SRS. Esses melhoramentos incidiram em vários aspectos: simplificação da arquitectura; melhoramento das capacidades de pesquisa; inclusão de sistemas de desambiguação e limpeza; melhoramento do sistema de ranking e junção; e integração final no SRS. Na próxima secção é demonstrada a nova arquitectura do sistema, sendo a secção 3 referente à explicação dos procedimentos de processamento de ontologias. Na secção 4 é mostrada uma pequena experiência com o sistema desenvolvido, sendo a secção 5 reservada à explicação da estrutura do código. A secção 6 exemplifica algum do trabalho futuro a desenvolver, rematando a secção 7 algumas conclusões deste trabalho. 2 Arquitectura do Sistema A arquitectura do sistema (Imagem 1) sofreu algumas alterações em relação à versão anterior. O processo de comunicação entre agentes foi simplificado, dando uma maior
2 responsabilidade ao Broker. Desta maneira conseguiu-se aumentar a rapidez do sistema, diminuindo a sua complexidade. Figura 1. Diagrama de arquitectura do sistema. Vértices correspondem a elementos do sistema. Linhas representam comunicação direccional entre os elementos. O funcionamento geral do sistema pode ser facilmente explicado: 1. SRS envia lista de termos a pesquisar ao Broker 2. Broker distribui lista de termos pelos agentes 3. Agente pesquisa por termos na sua ontologia e constrói nova ontologia 4. Agente devolve ontologia criada ao Broker 5. Broker faz a junção das ontologias recebidas 6. Broker devolve ontologia criada ao SRS 7. SRS adiciona ontologia recebida à ontologia de domínio Esta simplificação da comunicação entre agentes garante a escalabilidade existente anteriormente, deixando margem para posteriores inovações. 3 Processamento de Ontologias De seguida serão apresentados os vários procedimentos executados no processamento de ontologias. Em relação à versão anterior, foram criados novos procedimentos, tendo sido os restantes melhorados ou completamente reformulados. 3.1 Pesquisa Nesta fase, cada agente pesquisa na sua ontologia por classes que sejam idênticas aos termos pesquisados. Esta pesquisa é efectuada através da comparação entre os termos e o nome/label das várias classes. O algoritmo de comparação é demonstrado a seguir.
3 Algoritmo de comparação entre strings. Recebe como argumento duas strings e devolve um resultado booleano indicando se existe semelhança entre ambas. Boolean issimilar(string s1, String s2) normalize s1 and s2 remove stopwords from s1 and s2 stem s1 and s2 score <- string_distance_metric (s1,s2) if score > MIN_SIMILARITY return true else sy1,sy2 <- s1 and s2 synonyms for all the combinations between sy1 and sy2 stem sy1 and sy2 score <- string_distance_metric (sy1,sy2) if score > MIN_SIMILARITY return true return false A normalização é efectuada através da decomposição de tokens compostas (ex: PaperInProceedings fica Paper in Proceedings ), lowercasing de termos e remoção de pontuação, acentos e múltiplos espaços em branco. O algoritmo de semelhança entre termos utilizado foi o Iterative-SubString [2], sendo utilizado o Wordnet [3] para expansão de sinónimos. No stemming, foi utilizado o algoritmo de Porter [4]. Após alguns testes, foi determinado como 0.92 o parâmetro ideal para a semelhança mínima entre strings (MIN_SIMILARITY). 3.2 Desambiguação Após encontrar as correspondências entre termos e respectivas classes na ontologia, podem surgir situações onde um termo esteja associado a mais de uma classe. Assim sendo, é necessário verificar quais das classes exprime melhor o termo no contexto actual, contexto esse dado pelos restantes termos pesquisados. Partindo do princípio globalmente aceite que classes que exprimam o mesmo contexto numa ontologia estão muito próximas umas das outras, foi desenvolvido um algoritmo de desambiguação.
4 Algoritmo de desambiguação entre classes. Recebe como argumento uma lista de classes a desambiguar, e devolve a classe vencedora. Class classdesambiguation(list classestodesambiguate) terms classes <- all the classes identified with bestclass = null bestdistance = + foreach class in classestodesambiguate if(distance(class, classes) < bestdistance) bestdistance = distance(class, classes) bestclass = class return bestclass Este algoritmo escolhe a classe que esteja mais perto das restantes classes associadas com termos. Para isso é calculado, para cada classe a ser desambiguada, a distância para todas as outras classes que estejam também identificadas com termos. A classe com um menor valor é a classe escolhida para representar o termo na ontologia. Para o processamento de distâncias, a ontologia foi transformada num grafo utilizando o Jung 1, uma plataforma de alto desempenho para processamento de grafos em Java. Nesse grafo, os vértices correspondem a classes, enquanto as arestas representam as relações de taxonomia (rdfs:subclassof) e de atributos objecto (owl:objectproperty). Essa representação é guardada juntamente com a ontologia, sendo utilizada nas restantes fases sempre que seja necessário efectuar cálculos de distâncias entre classes na ontologia. 3.3 Segmentação Após a identificação das classes associadas com os termos pesquisado, é necessário definir que partes da ontologia é interessante adicionar à ontologia de domínio. Utilizando um algoritmo de segmentação básico [5], é segmentado todas as classes associadas com termos, bem como as suas superclasses até à raiz da ontologia. Para ontologias onde existam classes desconexas da raiz, a maior das superclasses segmentada é adicionada como subclasse da raiz na nova ontologia criada. Apenas a taxonomia da ontologia é segmentada, visto esta ser amplamente definida como a base de construção de qualquer ontologia [6], tendo uma semântica e funcionalidade globalmente definida dentro das linguagens de representação da Web Semântica. 1
5 3.4 Ranking Após a segmentação, uma nova ontologia é criada. È então necessário verificar a qualidade desta ontologia, tendo em vista a comparação com as ontologias criadas pelos restantes agentes. Duas métricas entram neste cálculo: soma das distâncias (normalizada) entre termos (Fórmula 1) e percentagem de termos encontrados (Fórmula 2). O resultado final consiste na média pesada desses dois valores (Fórmula 3)., (1).. (2) 2 (3) Com esta métrica é dada primazia a ontologias que tenham uma distância baixa entre classes associadas a termos, bem como um elevado número de classes associadas a termos. 3.5 Mapeamento Depois de verificar o ranking das ontologias, é necessário definir quais interessa juntar á ontologia de domínio, definindo também como elas se vão interligar (i.e. mapear). Para isso é calculado, para todas as combinações de ontologias possíveis, os valores de compatibilidade (Fórmula 4) e complementaridade (Fórmula 5) entre as ontologias. O conjunto que maximizar a média pesada desses valores (Fórmula 6) é constituído pelas ontologias mais idênticas (com maior compatibilidade) mas que ao mesmo tempo conseguem cobrir um maior número de termos pesquisados possível (complementaridade)... (4).. 2 (5) (6)
6 Após definir esse conjunto, é necessário mapear todas as classes das várias ontologias escolhidas, com o intuito de efectuar a sua junção. Caso duas classes estejam identificadas com o mesmo termo, o mapeamento é directo, pois já é implícito que ambas significam o mesmo. Nos restantes caso é utilizado os métodos referidos na pesquisa e desambiguação, tentando achar correspondências entre as várias classes de diferentes ontologias. 3.6 Junção Após a definição dos mapeamentos entre classes das diferentes ontologias, estamos em condições de juntar as várias ontologias numa nova ontologia. Uma a uma, as ontologias são juntas noutra ontologia, que contem um uri base genérico. A junção entre classes é muito simples: se houver um mapeamento entre as classes, a nova classe gerada vai ter o nome de uma delas, guardando num atributo os seus nomes e antigos uris; caso contrário, a classe é simplesmente adicionada com o mesmo nome, guardando também o antigo uri. Classes que tenham sido associadas com um termo guardam também esse termo num atributo, para posterior referência. 3.7 Limpeza Após a junção das várias ontologias, é necessário efectuar uma limpeza na ontologia criada para remover eventuais inconsistências ou redundâncias. Numa primeira fase todos os uris são reverificados, para discernir eventuais erros na junção. Depois são aplicados dois processos de limpeza: remoção de relações de subclassing entre a mesma classe (i.e. uma classe ser subclasse dela própria) e remoção de subclassing genérico, deixando só as subclasses mais particulares (i.e. deixar apenas as relações de subclassing mais próximas da classe, visto que esta relação é transitiva). Após este processo, a ontologia encontra-se pronta a ser incorporada na ontologia de domínio do SRS. 3.8 Incorporação no SRS Após a criação da ontologia, é necessário adicionar a mesma à ontologia de domínio do SRS. Visto que o SRS utiliza uma representação interna da ontologia de domínio muito idêntica á estrutura do Wordnet, foi necessário adaptar a ontologia criada àquela realidade. Para isso, todas as classes da ontologia criada são transformadas em synsets, sendo o synsetid o nome da classe, o gloss o label da classe e as palavras associadas ao synset o termo que deu origem á segmentação da classe, bem como o nome da classe. Desta maneira consegue-se manter o funcionamento dos dois sistemas, se bem que se perca algumas capacidades (por exemplo, neste momento é impossível mapear a ontologia criada na ontologia de domínio utilizando o sistema desenvolvido).
7 4 Experiência Para testar a nova versão do OntoDig, foi criada uma pequena experiência. Foram retirados os 10 termos mais relevantes de um manual sobre organização de conferências 2. De seguida, o OntoDig foi preparado com as 14 ontologias da Ontology Alignment Evaluation Initiative , e os termos foram apresentados ao sistema. Como se pode comprovar (Imagem 2) as ontologias criadas continuam a conter bastante informação, mas são mais pequenas e compactas. Com os mecanismos de desambiguação e de limpeza, o numero de relações entre classes foi diminuído, bem como o número de classes na ontologia final. Apenas as classes mais importantes ficaram, eliminando eventuais redundâncias. Testes mais profundos têm de ser efectuados para verificar a eficácia dos novos algoritmos implementados. No entanto, os resultados preliminares são motivadores. Tabela 1. Palavras mais frequentes, sem stopwords, do IEEE Conferences Organization Manual. Palavras mais frequentes conference, ieee, committee, chair, papers, proceedings, publications, organizational, hotel, review
8 Figura 2. Taxonomia (parcial) da ontologia criada. Vértices representam as classes da ontologia, sendo as ligações entre vértices referentes à relação de hierarquia. j.0: representa o uri por defeito. 5 Estrutura e organização do código A estrutura do código (Tabela 2) é muito idêntica á versão anterior. A secção de algoritmos foi reestruturada, com vista a permitir uma maior dinâmica na adição de novas funcionalidades. Foram também adicionadas algumas classes nas packages anteriormente existentes para conter as novas funcionalidades.
9 Tabela 1. Lista de packages e respectiva descrição. Caminho completo das packages foi encurtado, para efeitos de apresentação. Package ontodig ontodig.agents.broker ontodig.agents.broker.behaviours ontodig.agents.worker ontodig.agents.worker.behaviours ontodig.agents.worker.implementations ontodig.algorithms ontodig.algorithm.language ontodig.algorithm.language.stemming ontodig.algorithm.language.stopwords ontodig.algorithm.language.stringdistance ontodig.algorithm.language.stringnormalization ontodig.algorithm.language.thesaurus ontodig.datastrutctures ontodig.ontology Descrição Contem classe principal que dá inicio à aplicação. É aqui que são criados e lançados os agentes. Especificação base do agente Broker. Especificação do comportamento e comunicação do agente Broker. Especificação base do agente Worker. Especificação do comportamento e comunicação do agente Worker. Implementações concretas do comportamento do agente Worker em relação ao processamento de ontologias. Algoritmos genéricos a toda a aplicação. Algoritmos de linguagem genéricos Algoritmos de stemming Listas de stopwords Algoritmos de distância entre strings Algoritmos de normalização de strings Thesaurus disponíveis Estruturas de dados genéricas a toda a aplicação. Tratamento dos modelos das várias ontologias. Para funcionamento da aplicação são necessárias três livrarias: Jena 4, para processamento de ontologias; Jade 5, para a comunicação multi-agente; Jung 6, para processamento de grafos
10 6 Trabalho Futuro Após a conclusão desta fase, o sistema encontra-se incorporado no SRS e a sua robustez pode ser finalmente testada em casos reais. Por essa razão, futuramente, a principal actividade a desenvolver será a afinação do OntoDig para correcto funcionamento no SRS. Em relação à arquitectura do sistema, existe uma grande margem de manobra e possível inovação. Pouco trabalho foi efectuado pela comunidade científica na utilização de sistemas multi-agente para o problema de alinhamento/mapeamento de ontologias [7,8]. Existem muitas ideias que poderiam aumentar as capacidades do sistema, tais como a incorporação de memória e capacidade de aprendizagem nos agentes, a atribuição de ranking aos agentes ao longo do tempo, bem como transformar o mapeamento num processo de mediação entre agentes, onde os agentes com maiores capacidades teriam maior poder de decisão. Em relação ao processamento de ontologias, pode-se considerar que o sistema já está bastante robusto. A nível linguístico o sistema encontra-se ao nível dos restantes sistemas existentes [9], principalmente na área de alinhamento de ontologias. Posteriores optimizações podem advir dos testes em casos reais utilizando o SRS. A estrutura da ontologia já é tida em conta em muito dos processos (segmentação, ranking, mapeamento e junção), no entanto poderia-se estender à pesquisa, na qual se poderia achar ligações entre termos e classes não só linguisticamente mas também estruturalmente. No entanto, outros sistemas que utilizavam essas técnicas vieram ao longo do tempo a concluir que as mesmas não eram muito fiáveis, tendo muitos deles retirado essas características das suas ferramentas [9, 10]. Outras relações estruturais poderiam também ser extraídas da fase de segmentação (ex: partonomia, meronimia, etc.), mas para isso era necessário inferir a semântica das relações, capacidade para a qual não existe actualmente trabalho que se possa considerar eficaz [6]. Uma das optimizações que poderia trazer melhores resultados era a adição de um motor de inferência [11]. Esse motor iria trazer várias capacidades de raciocínio á aplicação, tal como inferir os domínios de classes e aumentar a informação sobre as relações entre elas, podendo desta maneira aumentar as capacidades dos algoritmos de pesquisa, segmentação e mapeamento. Este motor poderia também ser utilizado para verificação de consistência da ontologia final, tal como acontece no SRS. Utilizando um motor de inferência probabilístico [12], poderia também ser atribuído pesos às relações semânticas entre classes, tendo esse factor em conta nos algoritmos de ranking bem como na segmentação das classes. 7 Conclusões Após a conclusão deste trabalho, pode-se considerar que o OntoDig encontra-se em condições de incorporar a plataforma SRS. É necessário testar intensivamente o sistema em funcionamento na plataforma, mas as alterações que dai advierem serão mais ajustamentos do que alterações profundas no funcionamento do OntoDig.
11 Penso que a inclusão do OntoDig irá trazer claros benefícios ao SRS, visto que irá aumentar as capacidades do mesmo, sem ser necessário perder nenhuma das suas funcionalidades. Ou seja, no pior caso, irá funcionar exactamente como está agora. Este trabalho permitiu-me interagir directamente com algumas das áreas leccionadas na cadeira de SIGC, tais como Ontologias e Text Mining, bem como ter de estudar algumas das outras áreas (Information Retrieval e Case Based Reasoning) visto terem alguns conceitos que poderiam ser aplicados neste trabalho. Assim sendo, penso que foi uma excelente hipótese para aplicar os conhecimentos adquiridos na cadeira. Horas-Extra por fase: Fase 1- Melhoramentos genéricos (15h) Fase 3- Integração+Estrutura (35h) Fase 3- Teste+Relatório (15h) Total 65h Referências 1. Antunes, B., "SRS: Semantic Reuse System", M.Sc. thesis, University of Coimbra, July Stoilos, G., Stamou, G., Kollias, S.: A String Metric for Ontology Alignment. In: Proceedings of the 4th International Semantic Web Conference, pp Springer Berlin/Heidelberg (2005) 3. Miller, G.A., WordNet: A Lexical Database for English, Communications of the ACM, vol. 38, p. 39 (1995) 4. Porter, M.F., An algorithm for suffiz stripping, Electronic Librarian and Information Systems (1980) 5. Seidenberg, J., Rector, A.: Web Ontology Segmentation: Analysis, Classification and Use. In: Proceedings of the 15th International Conference on World Wide Web, pp ACM, New York (2006) 6. Noy, N.F., McGuiness, D.L.: Ontology Development 101: A Guide to Creating Your First Ontology. (2001) 7. Silva, N., Maio, P. & Rocha, J., An Approach to Ontology Mapping Negotiation. Proceedings of the Workshop on Integrating Ontologies (2005) 8. Laer, L., et al., Reaching agreement over ontology alignments, Proceedings of the Fifth International Semantic Web Conference (ISWC 06), Euzenat, J., Shvaiko, P.: Ontology Matching. Springer-Verlag New York, Inc. Secaucus, NJ, USA (2007) 10. Lambrix, P., Tan, H., SAMBO A system for aligning and merging biomedical ontologies. Web Semantics: Science, Services and Agents on the World Wide Web, 4(3), (2006) 11. Parsia, B., Sirin, E., Pellet: An OWL DL Reasoner. Proceedings of the International Workshop on Description Logics, 104 (2004) 12. Klinov, P., Pronto: A Non-monotonic Probabilistic Description Logic Reasoner. The European Semantic Web Conference (2008)
GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios
Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de
Leia maisGereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática
Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo
Leia maisSIMULADOR MULTI-AGENTE DE MERCADOS ELECTRÓNICOS COM
SIMULADOR MULTI-AGENTE DE MERCADOS ELECTRÓNICOS COM MAPEAMENTO DE ONTOLOGIAS Maria João Viamonte, Nuno Silva GECAD - Knowledge Engineering and Decision Support Research Group Polytechnic Institute of Porto
Leia maisGereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios
Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de
Leia maisTabela 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 maisInstituto Politécnico de Beja. Escola Superior de Tecnologia e Gestão
Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão Curso de Engenharia Informática Disciplina de Estrutura de dados e Algoritmos 2º Ano - 1º Semestre Relatório Connected Component Labeling
Leia maisBase de Dados para Administrações de Condomínios
Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: ei03069@fe.up.pt Marco António Sousa Nunes Fernandes Silva: ei03121@fe.up.pt Pedro Miguel Rosário Alves: alves.pedro@fe.up.pt
Leia maisOrientaçã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 maisUML - Unified Modeling Language
UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril
Leia maisOFICIAL DA ORDEM MILITAR DE CRISTO MEDALHA DE EDUCAÇÃO FÍSICA E BONS SERVIÇOS. Circular n.º 023-A/2014 Portal F.P.T. - Inscrições (Aditamento)
Circular n.º 023-A/2014 Portal F.P.T. - Inscrições (Aditamento) Exmo. Sr. Presidente, A Direcção da F.P.T. tem emitido, ao longo dos últimos meses, diversas Circulares, com o objectivo de ir informando,
Leia maisMúltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II
O seguinte exercício contempla um processo com três estágios. Baseia-se no Inquérito de Satisfação Fase II, sendo, por isso, essencial compreender primeiro o problema antes de começar o tutorial. 1 1.
Leia maisManual do GesFiliais
Manual do GesFiliais Introdução... 3 Arquitectura e Interligação dos elementos do sistema... 4 Configuração do GesPOS Back-Office... 7 Utilização do GesFiliais... 12 Outros modos de utilização do GesFiliais...
Leia maisII EDIÇÃO DO CONCURSO GESTÃO DE IDEIAS PARA ECONOMIZAR
II EDIÇÃO DO CONCURSO GESTÃO DE IDEIAS PARA ECONOMIZAR APRESENTAÇÃO DO CONCURSO: O concurso Gestão de Ideias para Economizar representa uma oportunidade para os estudantes se prepararem, em pequenos grupos,
Leia maisUnidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste
Unidade VI Validação e Verificação de Software Teste de Software Profa. Dra. Sandra Fabbri Conteúdo Técnicas de Teste Funcional Estrutural Baseada em Erros Estratégias de Teste Teste de Unidade Teste de
Leia maisDescrição de Arquitectura e Design. SyncMasters
1 Descrição de Arquitectura e Design SyncMasters ConfiKeeper Version 2.0, 16-11-2014 by SyncMasters: Carlos Paiva, 2009108909, cpaiva@student.dei.uc.pt Inês Parente, 2012152484, iparente@student.dei.uc.pt
Leia maisARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto
Leia maisProgramação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto
Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização,
Leia maisISO/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 maisMANUAL DO UTILIZADOR
MANUAL DO UTILIZADOR Versão 1.6 PÁGINA DE PESQUISA A página principal do PacWeb permite a realização de um número muito variado de pesquisas, simples, ou pelo contrário extremamente complexas, dependendo
Leia maisNota prévia. Convenções
Nota prévia O draft de diagrama de componentes, e respectivas interfaces, foi actualizado pela última vez em 07/12/2007. Este draft servirá de base para as implementações do CyberChair. Caso detecte alguma
Leia maisWebSphere_Integration_Developer_D_Jan06 Script
WebSphere_Integration_Developer_D_Jan06 Script 1a Nesta demonstração, Will Dunlop, um programador de integração da JK, utiliza o IBM, [ IBM], ou WID para construir um novo serviço orientado para os processos
Leia maisModelo 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 maisManual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco
Escola Superior de Tecnologia Instituto Politécnico de Castelo Branco Departamento de Informática Curso de Engenharia Informática Disciplina de Projecto de Sistemas Industriais Ano Lectivo de 2005/2006
Leia mais4 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 maisPrototype, um Design Patterns de Criação
Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe
Leia maisDESENVOLVIMENTO 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 maisGuia de Prova de Aptidão Profissional
Guia de Prova de Aptidão Profissional Técnico de Gestão e Programação de Sistemas Informáticos Fábio Alexandre Lemos Ferreira Fábio Cardante Teixeira 2010/2011 Índice I. Apresentação permanente do projecto...
Leia maisInteligência Computacional Aplicada a Engenharia de Software
Inteligência Computacional Aplicada a Engenharia de Software Estudo de caso III Prof. Ricardo de Sousa Britto rbritto@ufpi.edu.br Introdução Em alguns ambientes industriais, pode ser necessário priorizar
Leia maisCOMPETÊNCIAS BÁSICAS EM TIC NAS EB1
COMPETÊNCIAS BÁSICAS EM TIC NAS EB1 Oficina do Correio Para saber mais sobre Correio electrónico 1. Dicas para melhor gerir e organizar o Correio Electrónico utilizando o Outlook Express Criar Pastas Escrever
Leia maisMotor de Pesquisa Baseado na Web Semântica
Motor de Pesquisa Baseado na Web Semântica Rui Gaspar, Ricardo Clemente {ruiandre, ricjorge}@student.dei.uc.pt Resumo: Com este projecto pretende-se desenvolver um motor de pesquisa, que implemente conceitos
Leia maisConceito. As empresas como ecossistemas de relações dinâmicas
Conceito As empresas como ecossistemas de relações dinâmicas PÁG 02 Actualmente, face à crescente necessidade de integração dos processos de negócio, as empresas enfrentam o desafio de inovar e expandir
Leia maisAspectos técnicos do desenvolvimento baseado em componentes
Aspectos técnicos do desenvolvimento baseado em componentes Um novo processo de desenvolvimento O uso de componentes traz mudanças no processo de desenvolvimento Além de desenvolver um produto, queremos
Leia maisUtilização do SOLVER do EXCEL
Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de
Leia maisDesenvolvimento de uma Aplicação WEB para monitorização de BD Oracle
Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle Luís Filipe Borges Pinto Resumo: Este projecto consiste na implementação de uma aplicação WEB para monitorização
Leia mais2 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 maisPONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:
Leia maisCOMPARAÇÃO DOS MÉTODOS DE SEGMENTAÇÃO DE IMAGENS OTSU, KMEANS E CRESCIMENTO DE REGIÕES NA SEGMENTAÇÃO DE PLACAS AUTOMOTIVAS
COMPARAÇÃO DOS MÉTODOS DE SEGMENTAÇÃO DE IMAGENS OTSU, KMEANS E CRESCIMENTO DE REGIÕES NA SEGMENTAÇÃO DE PLACAS AUTOMOTIVAS Leonardo Meneguzzi 1 ; Marcelo Massoco Cendron 2 ; Manassés Ribeiro 3 INTRODUÇÃO
Leia maisDadas a base e a altura de um triangulo, determinar sua área.
Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares
Leia maisAplicação de Estatísticas de Ensino Superior
Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão Curso de Engenharia Informática Disciplina de Linguagens de Programação Aplicação de Estatísticas de Ensino Superior Linguagem: Python
Leia mais3 Modelo de Controle de Acesso no Projeto de Aplicações na Web Semântica
3 Modelo de Controle de Acesso no Projeto de Aplicações na Web Semântica Este trabalho tem o objetivo de integrar o controle de acesso no projeto de aplicações na web semântica. Uma arquitetura de software
Leia maisWeb Semântica e Matching de Ontologias: Uma Visão Geral
Web Semântica e Matching de Ontologias: Uma Visão Geral Hélio Rodrigues de Oliveira Departamento de Computação Universidade Federal do Ceará heliorodrigues@lia.ufc.br Bernadette Farias Lóscio Departamento
Leia maisBenefícios Aumento de produtividade; Sincronização directa e sem problemas; Muito fácil de utilizar.
Pocket Encomendas Descritivo completo A solução ideal para os vendedores que precisam de enviar as encomendas por telefone. Evita perdas de tempo e erros, com o PDA acede à informação dos clientes, introduz
Leia maisNa 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 maisJSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem
1 JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem orientada a objectos. Tal como em ASP e PHP, os ficheiros
Leia maisDescoberta de Domínio Conceitual de Páginas Web
paper:25 Descoberta de Domínio Conceitual de Páginas Web Aluno: Gleidson Antônio Cardoso da Silva gleidson.silva@posgrad.ufsc.br Orientadora: Carina Friedrich Dorneles dorneles@inf.ufsc.br Nível: Mestrado
Leia maisEngenharia de Software
Engenharia de Software 2º Semestre de 2006/2007 Terceiro enunciado detalhado do projecto: Portal OurDocs ic-es+alameda@mega.ist.utl.pt ic-es+tagus@mega.ist.utl.pt 1. Introdução O terceiro enunciado do
Leia maisAULA 4 VISÃO BÁSICA DE CLASSES EM PHP
AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.
Leia maisISO 9001:2008. A International Organization for Standardization (ISO) publicou em 2008-11- 14 a nova edição da Norma ISO 9000:
A International Organization for Standardization (ISO) publicou em 2008-11- 14 a nova edição da Norma ISO 9000: ISO 9001:2008 Esta nova edição decorre do compromisso da ISO em rever e actualizar as Normas,
Leia maisTECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite
Leia maisProgramação com Objectos. Processamento de Dados I. 3. UML (Unified Modeling Language)
Programação com Objectos Processamento de Dados I 3. UML (Unified Modeling Language) 1 Modelo UML Diagrama de classes Programação com Objectos / Processamento de Dados I 2 Modelo O desenvolvimento de programas
Leia maisArquitecturas de Software Licenciatura em Engenharia Informática e de Computadores
UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:
Leia maisRock In Rio - Lisboa
Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem
Leia maisPHC Serviços CS. A gestão de processos de prestação de serviços
PHC Serviços CS A gestão de processos de prestação de serviços A solução que permite controlar diferentes áreas de uma empresa: reclamações e respectivo tratamento; controlo de processos e respectivos
Leia maisDESENVOLVIMENTO DE SISTEMAS SOFTWARE FASE 1 GRUPO 10. Vítor Martins 47121. Rui Fonseca 47081. David Barbosa 47076. Ricardo Boas 47023
DESENVOLVIMENTO DE SISTEMAS SOFTWARE FASE 1 David Barbosa 47076 Ricardo Boas 47023 Rui Fonseca 47081 Vítor Martins 47121 GRUPO 10 2009/2010 1 Índice 1. Introdução... 2 1.1 Visão Geral do Problema... 2
Leia maisExemplo de aplicação Car Parking 1in1out
Animator Exemplo de aplicação Car Parking 1in1out Neste documento será apresentado um exemplo de aplicação de um parque de estacionamento com uma entrada, uma saída, e três lugares livres de estacionamento.
Leia maisMODELO CMM MATURIDADE DE SOFTWARE
MODELO CMM MATURIDADE DE SOFTWARE O modelo CMM Capability Maturity Model foi produzido pelo SEI (Software Engineering Institute) da Universidade Carnegie Mellon (CMU), em Pittsburgh, EUA, por um grupo
Leia maisDATA WAREHOUSE. Introdução
DATA WAREHOUSE Introdução O grande crescimento do ambiente de negócios, médias e grandes empresas armazenam também um alto volume de informações, onde que juntamente com a tecnologia da informação, a correta
Leia maisCurso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento
Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Professor Rene - UNIP 1 Roteamento Dinâmico Perspectiva e histórico Os protocolos de roteamento dinâmico são usados
Leia maisMinistério das Finanças Instituto de Informática. Departamento de Sistemas de Informação
Ministério das Finanças Instituto de Informática Departamento de Sistemas de Informação Assiduidade para Calendários Específicos Junho 2010 Versão 6.0-2010 SUMÁRIO 1 OBJECTIVO 4 2 ECRÃ ELIMINADO 4 3 NOVOS
Leia maisAlgoritmos 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 maisEngenharia de Software Sistemas Distribuídos
Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 FEARSe Requisitos para a 1 a entrega 18 de Março de 2010 1 Introdução O projecto conjunto das disciplinas de Engenharia de Software
Leia maisDesenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto
Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto
Leia maisWEBSITE DEFIR PRO WWW.DEFIR.NET
MANUAL DO UTILIZADOR WEBSITE DEFIR PRO WWW.DEFIR.NET 1. 2. PÁGINA INICIAL... 3 CARACTERÍSTICAS... 3 2.1. 2.2. APRESENTAÇÃO E ESPECIFICAÇÕES... 3 TUTORIAIS... 4 3. DOWNLOADS... 5 3.1. 3.2. ENCOMENDAS (NOVOS
Leia maisINTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO
INTRODUÇÃO 12. DOCUMENTAÇÃO Na plataforma Java SE 7, há cerca de 4000 classes e interfaces disponíveis para utilizarmos em nossas aplicações Podemos visualizar a documentação dessas classes e interfaces
Leia maisCurso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:
Trabalho elaborado por: Carlos Palma nº5608 Curso de Eng. Informática Linguagens de Programação C Sharp University Data Processing (C Sharp Universidade de Processamento de Dados) Docente: José Jasnau
Leia maisUniversidade do Minho. Licenciatura em Engenharia Informática. Desenvolvimento de Sistemas de Software. Gere Com Saber
Universidade do Minho Gere Com Saber Grupo 3: 430 José Carvalho 4377 Pedro Ribeiro 4394 Tiago Airosa 49333 Bernardino Fernandes 4936 Luís Carvalho Índice ÍNDICE ÍNDICE DE FIGURAS 5 INTRODUÇÃO 7. MODELO
Leia maisProf. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.
Visão Geral do Sistema Prof. Raul Sidnei Wazlawick UFSC-CTC-INE 2010 Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010. A fase de concepção do UP consiste
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguinte propriedade: Para todo nó da árvore, se seu valor é X, então: Os nós pertencentes
Leia maisOntologias. 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 maisEstrutura de Dados. Introdução a Ponteiros. Prof. Gerson Borges Estrutura de Dados I 1
Estrutura de Dados Introdução a Ponteiros Prof. Gerson Borges Estrutura de Dados I 1 Sumário è Explicação da importância do planejamento de ensino; è Métodos e técnicas que iremos trabalhar durante o semestre;
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda
Leia maisAná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 maisFeature-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 maisComputação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.
Computação Paralela Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Desenvolvimento de Aplicações Paralelas Uma Metodologia
Leia mais4.1.3. Diagrama de contexto
4.1.3. Diagrama de contexto 1 2 Diagrama de contexto O diagrama de contexto deve mostrar as relações estabelecidas entre o sistema e o meio ambiente, apresentando o sistema com um único processo As entradas
Leia maisPossui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.
3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades
Leia maisEngenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto
LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A Engenharia de Software e Sistemas Distribuídos 2 o Semestre 2014/2015 Enunciado Geral do Projecto O que se segue é uma descrição geral do domínio do projecto a desenvolver
Leia maisReconhecimento de Padrões
Engenharia Informática (ramos de Gestão e Industrial) Departamento de Sistemas e Informação Reconhecimento de Padrões Projecto Final 2004/2005 Realizado por: Prof. João Ascenso. Departamento de Sistemas
Leia maisUtilizando a ferramenta de criação de aulas
http://portaldoprofessor.mec.gov.br/ 04 Roteiro Utilizando a ferramenta de criação de aulas Ministério da Educação Utilizando a ferramenta de criação de aulas Para criar uma sugestão de aula é necessário
Leia maisSemâ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 maisSistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004
QSP Informe Reservado Nº 41 Dezembro/2004 Sistemas de Gestão O QUE MUDOU COM A NOVA ISO 14001:2004 Material especialmente preparado para os Associados ao QSP. QSP Informe Reservado Nº 41 Dezembro/2004
Leia maisNovo Formato de Logins Manual de Consulta
Gestão Integrada de Acessos Novo Formato de Logins Manual de Consulta Gestão Integrada de Acessos Histórico de Alterações Versão Descrição Autor Data 1.0 Versão inicial DSI/PPQ 2014-07-11 Controlo do documento
Leia maisAbordagem de Processo: conceitos e diretrizes para sua implementação
QP Informe Reservado Nº 70 Maio/2007 Abordagem de Processo: conceitos e diretrizes para sua implementação Tradução para o português especialmente preparada para os Associados ao QP. Este guindance paper
Leia maisObjetivos: i) Verificar o impacto de loops em redes locais ii) Configurar o protocolo STP para remover loops da rede
Laboratório de Redes de Computadores 2 8 o experimento Objetivos: i) Verificar o impacto de loops em redes locais ii) Configurar o protocolo STP para remover loops da rede Introdução A interligação de
Leia maisGrupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais
Número: Nome: Página 1 de 5 LEIC/LERC 2012/13, Repescagem do 1º Teste de Sistemas Distribuídos, 25 de Junho de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:
Leia maisResolução da lista de exercícios de casos de uso
Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se
Leia maisSoftware PHC com MapPoint
Software PHC com MapPoint A análise de informação geográfica A integração entre o Software PHC e o Microsoft Map Point permite a análise de informação geográfica, desde mapas a rotas, com base na informação
Leia maisAnálise de Links e Busca na Web
Análise de Links e Busca na Web Redes Sociais e Econômicas Prof. André Vignatti PageRank O PageRank é uma espécie de fluido que circula pela rede Para uma rede com n nós, o PageRank é calculado da seguinte
Leia maisCriaçã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 maisA lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.
INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,
Leia maisOFICIAL DA ORDEM MILITAR DE CRISTO MEDALHA DE EDUCAÇÃO FÍSICA E BONS SERVIÇOS. Circular n.º 029/2014 PORTAL FPT Abertura aos atletas
Circular n.º 029/2014 PORTAL FPT Abertura aos atletas Exmo. Sr. Presidente, Após muitos meses de desenvolvimento e melhorias contínuas na nova plataforma informática onde se inclui o amplamente divulgado
Leia maisINTRODUÇÃO AO DESENVOLVIMENTO DE SISTEMAS COM MICROCONTROLADORES
INTRODUÇÃO AO DESENVOLVIMENTO DE SISTEMAS COM MICROCONTROLADORES Matheus Montanini Breve (PIBIC-Jr), Miguel Angel Chincaro Bernuy (Orientador), e-mail: migueltrabalho@gmail.com Universidade Tecnológica
Leia maisPadrão Básico de Projeto: Herança versus Composição
Padrão Básico de Projeto: Herança versus Composição Composição e Herança Composição e herança são dois mecanismos para reutilizar funcionalidade Alguns anos atrás (e na cabeça de alguns programadores ainda!),
Leia mais