Número: Nome: 1 --------------------------------------------------------------------------------------------------------------



Documentos relacionados
INSTITUTO SUPERIOR TÉCNICO Gestão e Tratamento de Informação

Limpeza e transformação de dados (SSIS)

Tarefa Orientada 13 Agrupamento e sumário de dados

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

Tarefa Orientada 14 Subconsultas

Programação III / Estruturas de Dados. Enunciado do Trabalho Prático

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

Exercícios de Excel com Programação em VBA. Luís Vieira Lobo

Tarefa Orientada 16 Vistas

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações.

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

MANUAL DO UTILIZADOR

INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados

Usando o Excel ESTATÍSTICA. A Janela do Excel Barra de título. Barra de menus. Barra de ferramentas padrão e de formatação.

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

XPath e XSLT. Ferramentas para Internet Marx Gomes Van der Linden. ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida )

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Tarefa Orientada 11 Junção Interna

Usando o Excel ESTATÍSTICA. Funções

BIBLIOTECA ANACOM MANUAL DO UTILIZADOR

Limpeza e transformação de dados

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

EXAME DE 1ª ÉPOCA Semestre de Verão 2004/ Junho 2005 duração: 2h30m

Aplicações de Escritório Electrónico

Prof.: Clayton Maciel Costa

Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto

Exame de Época Especial / 1º Semestre / 2007/2008. Todas as folhas devem ser identificadas, de forma legível, com o nome e número do aluno.

Consultas (Queries) ou Interrogações

Novo Formato de Logins Manual de Consulta

Administração e Optimização de BDs

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Oficina de Construção de Páginas Web

Tarefa Orientada 2 Criar uma base de dados

Gerar o Ficheiro de Inventário

MANUAL INOVAR ALUNOS Área Docente

Busca. Pesquisa sequencial

Microsoft Access. No Access, existem vários tipos de objectos: Tabelas. Consultas. Formulários Relatórios Macros Módulos

APROG - Civil. Excel. Técnicas de pesquisa de informação em tabelas. Instituto Superior de Engenharia do Porto

GERÊNCIA DE DADOS SEMI ESTRUTURADOS - XQUERY. Prof. Angelo Augusto Frozza

Tarefa Orientada 18 Tabelas dinâmicas

Índice. Introdução 31. Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais 35

4 Segmentação Algoritmo proposto

Guia de Estudo Folha de Cálculo Microsoft Excel

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

FICHEIROS COM EXEMPLOS

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

Aplicações de Escritório Electrónico

XML - DTD - XSL Exemplos de Exercícios TWEB II

ZS Rest. Manual Avançado. Ementas : e SMS. v2011

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Árvores. Algoritmos e Estruturas de Dados 2005/2006

Desenvolvimento de uma base de dados. Relação. Modelo lógico: SGBD relacional

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Manual de Utilizador do SABI

Aplicações de Escritório Electrónico

Bases de Dados 2007/2008 Exame

Faculdade de Ciências da Universidade de Lisboa CURSO DE GPS. Módulo x. (Aula Prática) Reliance - Ashtech. Suas Aplicações Em SIG.

Iniciação à Informática

Lição 1 - Criação de campos calculados em consultas

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

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

FÓRMULAS DO EXCEL QUE SALVARAM MEU EMPREGO

No final desta sessão o formando deverá ser capaz de aceder ao Word e iniciar um novo documento.

Quando tiver tudo preenchido, pressione o botão. Abre outro formulário, que deverá preencher, pressionando no final do. Figura 1

Tarefa 18: Criar Tabelas Dinâmicas a partir de Listas de Excel

Especificação Técnica ACSS

Linguagem algorítmica: Portugol

Bases de Dados 2005/2006. Aula 5

PACWEB Módulo de Pesquisa MANUAL DO UTILIZADOR

Módulo III. Folhas de Cálculo

NOME SEXO CPF NASCIMENTO SALARIO

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

ficha 3 espaços lineares

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

Manual de Administração Intranet BNI

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) XML Origens. HTML Problemas

GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1)

Aplicações de Escritório Electrónico

Programação Básica em STEP 7 Símbolos. SITRAIN Training for Automation and Drives Página 4-1

Transcrição:

Número: Nome: 1 -------------------------------------------------------------------------------------------------------------- INSTITUTO SUPERIOR TÉCNICO Gestão e Tratamento de Informação Exame: tipo Dezembro 2007 -------------------------------------------------------------------------------------------------------------- A duração deste exame é de 2Horas. É um exame com consulta. O número total de pontos é 20. Marque as suas respostas NA FOLHA DE EXAME. Escreva o seu número e nome no topo de cada página. Escreva todas as fórmulas. Para o uso oficial somente 1 2 3 4 5 SUM 2.5 5 5 5 2.5 20

Número: Nome: 2 1. (2.5 pts) Miscelânia a) (0.25 pts) Diga qual é a diferença entre information extraction e information retrieval. Refira um problema em que seria mais apropriado o uso de técnicas de IE. Refira um problema em que seria mais apropriado o uso de técnicas de IR. Information Retrieval lida com o problema de, dado um conjunto de documentos (normalmente, com conteúdo textual) e a necessidade de informação de um utlilizador, como recuperar os documentos que satisfaçam essa necessidade. I.e., a unidade de informação é o documento e, normalmente, não há qualquer tentativa de estruturar a informação nele contida. Information Extraction lida com o problema de, dado um conjunto de documentos, como extraír as entidades (pessoas, locais, eventos, etc.) mencionadas nos documentos e as relações entre essas entidades. I.e., existe uma tentativa de extraír informação estruturada de documentos contendo informação não estruturada. Note-se que não existe uma fronteira definida entre as duas áreas e, muitas vezes, estas intersectam-se. Uma tarefa apropriada para IE é, por exemplo, criar uma base de dados (relacional) de nomes de actores e filmes em que participaram, dado um conjunto de documentos contendo críticas de cinema. Uma tarefa apropriada para IR é a busca de documentos na WWW, dado um conjunto de palavras chave. b) (0.25 pts) Num sistema de integração de dados, explique qual a diferença entre os modelos global-as-view e local-as-view. Indique uma vantagem e uma desvantagem de cada um dos modelos. No global-as-view, o esquema do mediador é definido com base nos esquemas das fontes. Vantagem: a resposta a uma interrogação colocada sobre o esquem do mediador é calculada através de um processo de expansão de vistas que é facilmente calculado. Desvantagem: não é facilmente escalável, já que, quando adicionamos uma fonte, é necessário conhecer o esquema de todas as outras fontes. Só deste modo, se consegue determinar com que fontes se pode combinar a nova. No local-as-view, o esquema das fontes de dados é defindo a partir do esquema do mediador. Vantagem: permite expressar informação incompleta nas fontes de dados, ou esquema do mediador é mais estável Desvantagem: computacionalmente mais caro

Número: Nome: 3 c) (1 pts) Relativamente às ferramentas WebHarvest e LingPipe, indique nas alíneas seguintes quais as verdadeiras: a) O LingPipe oferece na sua API implementações de funções para a medição de similaridade entre cadeias de caracteres. V b) O WebHarvest oferece entre as suas funcionalidades básicas um processador específico para a classificação de texto F c) O funcionamento do LingPipe baseia-se numa cadeia de processamento especificada através de um ficheiro de configuração XML F d) (1 pts) Indique se as seguintes afirmações são verdadeiras ou falsas: a. As dimensões de qualidade de dados (por exemplo, accuracy )servem para suportar análises de dados agregados. F b. Numa regra de Datalog, o lado direito (ou corpo) só pode conter predicados positivos. F c. A operação de selecção sobre o modelo de dados hierárquico (ou baseado em árvores, como o caso de XML) retornaria todas as sub-árvores que obedecem a uma determinada condição. V

Número: Nome: 4 2. (5 pts) XML: XSD, XPath, XSLT, XQuery Considere o seguinte documento XML, o qual representa informação no contexto de uma agenda electrónica: <?xml version="1.0"?> <agenda> <grupo gid="ep0"> <entrada id="e1" tipo="pessoa"> <nome>martins, José</nome> <email>jmartins@mail.pt</email> <telefone>223 604479</telefone> </entrada> </grupo> <grupo gid="ep1"> <entrada id="e2" tipo="pessoa"> <nome>pedro Marques</nome> <telefone>223 604469</telefone> </entrada> <entrada id="e3" tipo="pessoa"> <nome>josé Saraiva</nome> <email>js@hotmail.com</email> <telefone>213 604479</telefone> </entrada> </grupo> <entrada id="e4" tipo="empresa"> <nome>lavandaria Tudo Mais Branco</nome> <telefone>213 604433</telefone> </entrada> <entrada id="e5" tipo="pessoa"> <nome>miguel Alves de Castro</nome> </entrada> </agenda> a) (1 pts) Escreva um XMLSchema que permita validar o documento XML dado acima. <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:complextype name="agendatype"> <xsd:sequence> <xsd:element name="grupo" type="grupotype" maxoccurs="unbonded" /> <xsd:element name="entrada" type="entradatype" maxoccurs="unbonded" /> </xsd:sequence> </xsd:complextype> <xsd:complextype name="grupotype"> <xsd:sequence> <xsd:element name="entrada" type="entradatype" maxoccurs="unbonded" /> </xsd:sequence> <xsd:attribute name="gid" type="xsd:string" /> </xsd:complextype> <xsd:complextype name="entradatype"> <xsd:sequence> <xsd:element name="nome" type="xsd:string"/> <xsd:element name="email" type="xsd:string" minoccurs="0" /> <xsd:element name="telefone" type="xsd:string" minoccurs="0" /> </xsd:sequence> <xsd:attribute name="id" type="xsd:string" /> <xsd:attribute name="tipo" type="xsd:string" /> </xsd:complextype> <xsd:element name="agenda" type="agendatype"/> </xsd:schema>

Número: Nome: 5 (b) (2 pts) Escreva uma XSLT para transformar o documento XML dado acima num documento HTML em que a informação de cada contacto apareça de uma forma tabular como a que é indicada abaixo. Deverá ainda usar as funções XPath para processamento dos elementos de texto por forma a colocar um indicativo +351 em todos os nomes de telefone e normalizar os nomes das pessoas por forma a que sigam sempre o formato "NomePróprio NomeFamilia". nome empresa/particular telefone email id grupo <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <html> <body> <h2>agenda</h2> <table border="1"> <tr bgcolor="#9acd32"> <td>nome</td> <td>empresa/pessoar</td> <td>telefone</td> <td>email</td> <td>id</td> <td>grupo</td> </tr> <xsl:for-each select="//agenda/grupo/entrada"> <tr> <td><xsl:value-of select="reverse(tokenize(nome,','))"/></td> <td><xsl:value-of select="@tipo"/></td> <td><xsl:value-of select="concat('+351',telefone)"/></td> <td><xsl:value-of select="email"/></td> <td><xsl:value-of select="@id"/></td> <td><xsl:value-of select="../@gid"/></td> </tr> </xsl:for-each> <xsl:for-each select="//agenda/entrada"> <tr> <td><xsl:value-of select="reverse(tokenize(nome,','))"/></td> <td><xsl:value-of select="@tipo"/></td> <td><xsl:value-of select="concat('+351',telefone)"/></td> <td><xsl:value-of select="email"/></td> <td><xsl:value-of select="@id"/></td> <td></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>

Número: Nome: 6 (c) (1 pts) Escreva expressões XPath para seleccionar os seguintes elementos do ficheiro XML 1. Selecione todas as entradas de pessoas com nome contendo "José" ou "Pedro". 2. Selecione os identificadores das entradas que não são do tipo "pessoa". 1. //entrada[contains(nome,'josé') or contains(nome,'pedro')] 2. //entrada[@tipo!= 'pessoa'] (d) (1pts) Escreva uma XQuery para transformar o documento XML dado num documento HTML que obedeça às restrições colocadas na alínea 2 b) e que adicionalmente ordene os grupos e as respectivas entradas de acordo com o seu id. <html> <body> <h2>agenda</h2> <table border="1"> <tr bgcolor="#9acd32"> <td>nome</td> <td>empresa/pessoar</td> <td>telefone</td> <td>email</td> <td>id</td> <td>grupo</td> </tr> { let $doc :=. for $a in $doc//entrada order by $a/../@gid, $a/@id return <tr> <td>{reverse(tokenize($a/nome,','))}</td> <td>{$a/@tipo}</td> <td>{concat('+351',$a/telefone)}</td> <td>{$a/email}</td> <td>{$a/@id}</td> <td>{$a/../@gid}</td> </tr> } </table> </body> </html>

Número: Nome: 7 3. (5 pts) Data Extraction (a) (2 pts) Usando o algoritmo de distância de edição baseado em programação dinâmica, calcule a distância e o alinhamento entre as duas cadeias de caracteres abaixo indicadas. Indique também a matriz calculada pelo algoritmo. A X T T C E G F T X T C E G G F A X T T C E G F 0 1 2 3 4 5 6 7 8 T 1 1 2 2 3 4 5 6 7 X 2 2 1 2 3 4 5 6 7 T 3 3 2 1 2 3 4 5 6 C 4 4 3 2 2 2 3 4 5 E 5 5 4 3 3 3 2 3 4 G 6 6 5 4 4 4 3 2 3 G 7 7 6 5 5 5 4 3 3 F 8 8 7 6 6 6 5 4 3 edit distance = 3 alinhamento: A X T T C E G - F T X T - C E G G F

Número: Nome: 8 (b) (2 pts) Usando o algoritmo "simple tree matching" dado nas aulas teóricas, calcule a distância e o alinhamento das árvores que se seguem. Devem ser mostradas todas as matrizes calculadas pelo algoritmo. A A / / \ B F B F / \ / \ C D G H C G H E E D A/A B F B/B C D C/C E E/E 0 0 0 0 0 0 0 0 1 B 0 3 3 C 0 2 2 E 0 1 2 F 0 3 5 6 G 0 2 2 3 F/F H H/H 0 0 1 H 0 1 2 (c) (0,5 pts) Considerando o universo das cadeias de caracteres alfabéticos possíveis (A a Z, maiúsculas ou minusculas e sem considerar acentos e cedilhas), escreva expressões regulares que permitam mapear as seguintes restrições: Cadeira alfanumérica que contenha dois caracteres 'a' juntos. [a-za-z]*aa[a-za-z]* Cadeia alfanumérica que começe por um carácter minúsculo e tem no máximo dois caracteres maiúsculos. [a-z]+[a-z]*[a-z]?[a-z]*[a-z]?[a-z]*

Número: Nome: 9 (d) (0,5 pts) As quantias monetárias podem ser expressas de diferentes formas. Escreva expressões regulares que permitam fazer o reconhecimento das quantias monetárias apresentadas na tabela abaixo Moeda Exemplos Euro 1,00; 1,5 ; 15,50EUR Libra 12.50; 22.12; 22.99 Dólar $25.13; $5.00; $0.30; Escudo 12$50; 25$00; 150$00; 0$50 ( [0-9]+,[0-9]+) ([0-9]+,[0-9]+( (EUR))) ( [0-9]+\.[0-9]+) ($[0-9]+\.[0-9]+) ([0-9]+$[0-9]+)

Número: Nome: 10 4. (2 pts) Integração de dados Considere o ficheiro XML da pergunta 2 e o seguinte ficheiro XML: <contactos> <contacto email="maria@mail.pt"> <nomepessoa> <nomeproprio>maria</nomeproprio> <nomefamilia>pestana</nomefamilia> </nomepessoa> <telefone>212269988</telefone> </contacto> <contacto email="joana@sapo.pt"> <nomepessoa> <nomeproprio>joana</nomeproprio> <nomefamilia>martins</nomefamilia> </nomepessoa> </contacto> <contacto> <nomepessoa> <nomeproprio>miguel</nomeproprio> <nomefamilia>amaral</nomefamilia> </nomepessoa> </contacto> </contactos> a) Escreva uma XSD que capture uma visão integrada das duas fontes de dados. O esquema produzido deve conter os conceitos significativos dos dois esquemas. Uma vez que o esquema associado ao ficheiro XML original correspondente à informação de contactos numa agenda é mais genérico e captura todos os elementos significativos dos dois ficheiros, podemos usar a XSD dada como resposta na pergunta 2 a)

Número: Nome: 11 b) Escreva em XQuery dois mapeamentos entre esquemas (views), para o ficheiro XML fornecido para esta alínea e outro para o ficheiro XML da pergunta 2, que produzam XML em conformidade com o schema dado como resposta. Defina ainda uma view adicional, de nome mediated-schema, que faça a união dos dois mapeamentos sobre um elemento de raiz comum e que produza XML em conformidade com o esquema da alínea anterior. Para o ficheiro da pergunta 2 a view seria simplesmente uma função XPath que retornasse exactamente o conteúdo do documento. declare function gti:view1() { let $agenda := doc("agenda.xml") return $agenda; } Para o ficheiro desta alínea poderia ser usada a seguinte função XPath para produzir a view: declare function gti:view2() { <agenda xsi:nonamespaceschemalocation="schema.xsd"> { for $agenda in doc("contactos.xml")//contacto return <entrada tipo= pessoa > <nome> {concat($agenda/nome/pessoa(nomeproprio,,$agenda/nome/pessoa(nomefamilia} </nome> <email>{data($agenda/@email)}</author> <telefone>{data($agenda/@telefone)}</isbn> </entrada> } </agenda>} A view mediated-schema poderia ser obtida com ea seguinte função XPath: declare function gti:integrated() { let $aux = ( gti:view1()//agenda union gti:view2()//agenda ) return <agenda xsi:nonamespaceschemalocation="schema.xsd">{$aux}</agenda> }

Número: Nome: 12 b) Escreva, em Xquery, a seguinte interrogação sobre o esquema do mediador da alínea anterior: Qual o email da Joana Martins? //entrada[nome= Joana Martins ]/email

Número: Nome: 13 5. (5 pts) Limpeza e transformação de dados (a) (1.5 pts) Considere as duas cadeias de caracteres da pergunta 3.a) e aplique: 1. a função de distância de Jaro para calcular a distância entre elas. 2. a função de distância de Hamming. Apresente os cálculos. 1. Jaro s1 = s2 = 8 s1 /2 = 4 caracteres comuns: X, T, T, C, E, G, F => 7 caracteres transpostos: T, C, E => 3 A X T T C E G F T X T C E G G F semelhança (s1, s2) = (7/8+ 7/8+ 0,5*3/7)/3 = (0,875*2 + 0,21)/3 = 0,65 2.Hamming distância (s1, s2) = 4 (b) (2pts) Suponha um ficheiro com a seguinte lista de nomes e URLs de empresas: PIONEER http://www.pioneer.com 3Com Corporation http://www.3com.com Sony Corporation www.sony.co.uk Sony Corp www.sony.com THREE COM CORP http://www.3com.com PIONEER ELECTRONIC CORP www.pioneer.co.jp Sony Corp www.sony.com PIONEER STANDARD ELECTRONICS INC http://www.pios.com PIONEER http://www.pioneer.com PIONEER ELECTRONIC CORP www.pioneer.co.jp O objectivo é identificar os registos que dizem respeito à mesma empresa. Recorrendo ao algoritmo sorted neighbour e tendo em conta as actividades que compõem um processo de identificação de duplicados aproximados, indique quais os passos a seguir. Para cada passo, indique também quais os dados resultantes. Os passos seguidos devem ter como objectivo maximizar a eficiência e a qualidade dos dados obtidos.

Número: Nome: 14 Passo 1 pré-processamento: - converter os nomes e urls todos para minúsculas ou maiúsculas - retirar ou acrescentar a todos os URL o http:// Passo 2 escolher uma chave de ordenação - por exemplo, 3 primeiras letras do nome e 3 letras a seguir à quarta da url Passo 3 ordenar o ficheiro pela chave escolhida Passo 4- escolher um tamanho para a janela (por exemplo, 4) e só comparar os registos que pertencem a esta janela, usando um cjto de regras do tipo: - se os nomes são semelhantes com uma distância igual ou inferior a 3, usando o TF-IDF e as urls são semelhantes com uma distância inferior ou igual a 2 então os registos são semelhantes. - fazer deslizar a janela até ter coberto todos os registos (c) (1 pts) Suponha a relação Empresas (id, nome, url) que guarda os registos da alínea anterior e adiciona um identificador para cada registo. Escreva em SQL uma interrogação que retorne os pares de id (ex: (id1, id2) ) que são considerados suficientemente próximos pela aplicação de uma das funções de distância da alínea a) aplicada ao nome da empresa. Considere que dois nomes de empresa são considerados semelhantes se a sua distância de edição fôr inferior ou igual a 2. (Nota: Relembre como escreve um similarity join em SQL) Select t1.id id1, t2.id id2 From Empresas t1, Empresas t2, Where jaro(t1,nome, t2.nome) <= 2