Enunciado - Técnico Lisboa

Propaganda
Número:_________________ Nome: _________________________________________
--------------------------------------------------------------------------------------------------------------
INSTITUTO SUPERIOR TÉCNICO
Gestão e Tratamento de Informação
Exame 1
22 Janeiro 2009
--------------------------------------------------------------------------------------------------------------







A duração deste exame é de 2Horas.
É um exame com consulta.
Não é permitida a utilização de computadores nem telemóveis.
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
4
2
4
3
4
4
4
5
4
SUM
20
1
Número:_________________ Nome: _________________________________________
2
1. (4 pts) Miscelânia
1.1. (2 pts) Indique se as seguintes afirmações são verdadeiras ou falsas:
a. A ferramenta RoadRunner, introduzida nas aulas de laboratório, permite fazer o
reconhecimento de entidades em texto com base num algoritmo de machine learning.
b. A ferramenta LingPipe, introduzida nas aulas de laboratório, permite fazer o
reconhecimento de entidades em texto com base em Hidden Markov Models.
c. A linguagem XSLT é baseada num mecanismo de templates. As templates definem
as transformações a serem efectuadas sobre partes do documento XML original.
d. A XQuery Update acrescenta à linguagem XQuery, entre outras coisas, a
possibilidade de usar a claúsula "order" em conjunto com as claúsulas "for", "let", "where" e
"return" das expressões FLWR.
e. Num sistema de integração de dados virtual, a componente de reformulação de
interrogações tem como função reescrever as interrogações que foram colocadas sobre as
fontes de dados em interrogações que se referem ao esquema do mediador.
f. O schema matching é um dos passos de um processo de schema mapping e tem
como objectivo a criação de correspondências entre dois esquemas de dados.
g. A framework de limpeza e transformação de dados AJAX oferece um conjunto de
operadores que não podem ser especificados em SQL.
h. A seguinte interrogação SQL: SELECT id, LONGEST(name) FROM people
GROUP BY id é válida e serve para fundir os vários tuplos de people cujos nomes sejam
aproximados.
Número:_________________ Nome: _________________________________________
1.2. (2 pts) Responda às seguintes questões:
a. Indique um dos principais problemas dos classificadores Naive Bayes. Justifique.
b. Face à informação que lhe foi facultada durante o semestre, se tivesse que escolher
uma ferramenta comercial para detectar e eliminar registos aproximadamente duplicados de
uma tabela, qual escolheria e porquê.
3
Número:_________________ Nome: _________________________________________
4
2. (4 pts) XML: XSD, XPath, XSLT, XQuery
Considere a base de dados relacional esquematizada na figura abaixo. Tenha em atenção que a
relação entre as entidades Publisher e Book é de um-para-muitos, e que a relação entre Author
e Book é de muitos-para-muitos. Os atributos ID, PuID, AuID e ISBN têm como valores
números inteiros, e os atributos Date e BDay são do tipo data. Todos os restantes atributos são
do tipo string. Os IDs são chaves primárias (i.e. not null e unique) e os atributos Address ,
Date e BDay são opcionais.
ID
1
2
Publisher
Wiley
O’Reilly
Address
45 A St. Chicago
ID
1
2
ID
1
2
PuID
1
1
AuID
1
2
Author
John
Joe
Date
10-10-1995
BDay
12-11-1969
Book
Information Management
XQuery for Dummies
2.1 (1 pt) – Apresente um ficheiro XML que represente a estrutura e a informação da base de
dados relacional. O mesmo ficheiro XML deve representar Livros, Editoras e Autores. O
XML deve ser bem formado.
Número:_________________ Nome: _________________________________________
5
2.2 (1 pt) – Apresente um XML Schema (XSD) que permita validar o ficheiro XML
produzido como resultado da alínea anterior, respeitando a integridade da base de dados
relacional.
2.3 (2 pts) - Tendo em consideração o ficheiro XML definido como resposta à pergunta 1.1,
apresente expressões XQuery que permitam responder às seguintes necessidades de
informação.
2.3.1 - Retornar o título de todos os livros publicados no ano 1995.
Número:_________________ Nome: _________________________________________
6
2.3.2 - Retornar o nome de todos os autores de livros com a palavra XQuery no título.
2.3.3 - Retornar o nome dos autores com livros publicados na editora Wiley, por ordem
alfabética.
2.3.4 - Retornar o número de livros publicados pela editora O'Reiley entre 1990 e 2005.
Número:_________________ Nome: _________________________________________
7
3. (4 pts) Extracção de Informação
3.1. (1 pt) Considere o alfabeto composto pelos símbolos A, B, C e D. Escreva expressões
regulares que reconheçam:
a) Sequências com um número par de As.
b) Sequências de tamanho maior que 1, que terminam sempre com um símbolo diferente do
símbolo inicial.
3.2. (1,5 pt) Considere o seguinte Hidden Markov Model, em que as probabilidades iniciais de
cada estado estão representadas nas elipses:
Número:_________________ Nome: _________________________________________
Calcule a probabilidade de ocorrência da sequência de símbolos
AABABB
Apresente os cálculos efectuados.
8
Número:_________________ Nome: _________________________________________
9
3.3 (1,5 pt) - Atente no ficheiro XHTML cujo código se apresenta abaixo.
<html>
<head>
<title>Nomes e contacto dos clientes</title>
</head>
<body>
<h1>Nomes e contacto dos clientes</h1>
<br/>
<table>
<tr><td>Nome</td><td>Cidade</td><td>Telefone</td><tr>
<tr><td>Joana</td><td>Lisboa</td><td>212214567</td><tr>
<tr><td>Francisca</td><td>Porto</td><td>934568234</td><tr>
<tr><td>Mariana</td><td>Coimbra</td><td>912452345</td><tr>
</table>
</body>
Escreva um programa XQuery que permita converter os dados apresentados no ficheiro sobre
a forma de uma tabela HTML, para o formato XML cuja estrutura se apresenta abaixo.
<clientes>
<cliente nome="Joana" cidade="Lisboa" telefone="212214567"/>
<cliente nome="Francisca" cidade="Porto" telefone="934568234"/>
<cliente nome="Mariana" cidade="Coimbra" telefone="912452345"/>
</clientes>
Número:_________________ Nome: _________________________________________
10
4. (4 pts) Integração de dados
4.1 (3pts) – Os dois ficheiros XML que se apresentam abaixo codificam informação sobre os
clientes de uma determinada loja online e o número de encomendas que estes efectuaram.
<clients>
<client name="Ola Nordmann">
<address>Langgt 23</address>
<city>Stavanger</city>
<country>Norway</country>
<num-orders>5</num-orders>
</client>
<client name="Marie Rose">
<address>La Daille 4</address>
<city>Compiegne</city>
<country>France</country>
<num-orders>2</num-orders>
</client>
</clients>
<clients>
<country name="Portugal">
<client orders="1">
<name>Pedro Martins</name>
<city>Lisboa</city>
<card>visa</card>
</client>
<client orders="2">
<name>João Neves</name>
<city>Porto</city>
<card>mastercard</card>
</client>
</country>
<country name="France">
<client orders="1">
<name>Jean Paul</name>
<card>visa</card>
</client>
</country>
</clients>
a) (0,5 pt) - Apresente, sobre a forma de um documento XML, um formato de representação
comum para as duas fontes de dados apresentadas acima.
Número:_________________ Nome: _________________________________________
11
b) (0,5 pt)- Apresente um ficheiro XSD que permita validar o documento XML
correspondente ao formato de representação comum.
c) (1 pt) - Apresente views em XQuery que convertam a informação das fontes de dados
originais para o formato de representação comum (i.e. dois wrappers).
d) (1 pt) - Apresente uma view em XQuery que permita consolidar a informação das duas
views definidas na alínea 2.3 (i.e. um mediador), retornando a união das duas fontes de dados.
Número:_________________ Nome: _________________________________________
12
4.2.(1 pt) Considere os seguintes esquemas de dados:
Esquema origem:
Professor (id, nome, salarioBase)
Projecto(pid, orcamento)
Trabalha (id, pid, horas)
Esquema destino:
Pessoa (nome, salario)
Sabendo que existem os seguintes mapeamentos de esquema:
Professor(nome) -> Pessoa(nome)
Professor(salarioBase),Projecto(orcamento),Trabalha(horas) ->
Pessoa(salario)
e que o salário de uma pessoa é calculado de acordo com a seguinte fórmula:
salario = salarioBase + K*orçamento*horas/100, em que K é uma
constante arbitrária,
a) (0,5 pt) Escreva uma interrogação SQL que gere os tuplos a inserir na tabela Pessoa a
partir dos tuplos das três tabelas origem. (Relembre as expressões de mapeamento do sistema
CLIO)
Número:_________________ Nome: _________________________________________
b) (0,5 pt) Imagine que é acrescentada outra tabela origem:
Aluno (id, nome)
o seguinte mapeamento de esquema:
Aluno(nome) -> Pessoa (nome)
Aluno(id), Projecto(pid), Trabalha(horas) -> Pessoa (salario)
e a seguinte fórmula de cálculo:
Pessoa.salario = 50*horas para um aluno que trabalha num
projecto.
Reescreva a interrogação SQL da alínea anterior considerando o novo esquema origem
enriquecido com a tabela Aluno.
13
Número:_________________ Nome: _________________________________________
5. (4 pts) Limpeza e transformação de dados
5.1. (1pt) Considere as seguintes sequências de caracteres:
i) TROMBAS ii) TROLHAS
Usando o algoritmo de programação dinâmica:
a) Calcule a distância de edição entre as sequências
b) Indique um possível alinhamento mínimo.
14
Número:_________________ Nome: _________________________________________
15
5.2. (1 pt) Considere as mesmas duas cadeias de caracteres da alínea 5.1.
a) Calcule o número de 3-grams em comum.
b) Calcule a distância de edição entre as duas cadeias baseada em 3-grams.
5.3. (2 pts) Considere a seguinte tabela com registos sobre pessoas:
Nome
Maria Amélia
Francisco Martins
Pedro Carvalho
Diogo Antunes
Pedro M. Carvalho
Cod. Postal
3750-011
9400-025
1250-144
3750-151
1250
Morada
Agadão, Águeda
Casinhas, Porto Santo
Mouraria, Lisboa
Águeda, Águeda
Porto Santo
Joana Almeida
Maria Amália
João de Sousa
3750-031
3751-011
9400-035
Aguada de Baixo, Águeda
Águeda
Matas, Porto Santo
Escreva um programa AJAX para detectar e consolidar registos aproximadamente duplicados
nesta tabela. Se invocar funções externas dentro dos operadores, indique qual a semântica da
função.
Download