Projecto Integrado
Arquivo Digital de Trabalhos Práticos de Alunos
O que se pretende neste projecto é desenvolver um Arquivo Digital de Trabalhos Práticos de Alunos, que doravante
designaremos por ADTPs.
O Arquivo deverá ser desenvolvido de acordo com o modelo de referência (norma internacional) para a implementação de reopositórios digitais: OAIS (
Open Archive Information System).
Basicamente, o sistema recebe um pacote de submissão (SIP) com vários ficheiros de tipos diversos (por exemplo,
TeX, BibTeX, imagens, PDFs, código-fonte, programas executáveis). Juntamente com os ficheiros do Trabalho Prático a arquivar segue um manifesto num dialecto XML standard (METS) que define o conteúdo do pacote e permite ao sistema fazer o seu arquivo.
Além disso, esse manifesto também conterá a classificação (hierárquica ou não), descrita segundo um padrão a escolher de entre os seguintes: Dublin Core Metadata, Encoded Archival Description (EAD) e Dublin Core + Conjunto de Elementos definido pela equipe de projecto, e alguns documentos XML contendo metainformação técnica e/ou descritiva sobre cada um dos ficheiros.
O sistema procede à ingestão do SIP, convertendo o conjunto de ficheiros em formatos própios para armazenamento constituindo um novo pacote designado por pacote de arquivo (AIP).
Esse AIP é depois transformado, segundo regras de difusão próprias do sistema, num conjunto de novos pacotes prontos para serem difundidos/distribuídos, designados por pacotes de disseminação (DIP).
O ADTPs realiza sobre o AIP um vasto conjunto de operações de gestão do arquivo, destinadas a pequisar e a manter os ficheiros.
Resumindo o modelo OAIS comporta 3 actores (o
produtor que é o autor ou a entidade ou pessoa que detem os direitos sobre o material a arquivar, o
administrador do arquivo que terá o controlo das tarefas de transformação e gestão, e o
consumidor que será o futuro utilizador do sistema e que irá realizar operações de pesquisa, consulta e download), 3 megaprocessos (
ingestão que corresponde à entrada de materiais no arquivo,
gestão/administração que corresponde às acções de transformação e gestão dos objectos digitais armazenados, e
disseminação que corresponde à difusão/distribuição de objectos digitais), e 3 pacotes (
SIP - "Submission Information Package",
AIP - "Archival Information Package" e
DIP - "Dissemination Information Package").
Objectos Digitais
Um Arquivo Digital não é mais do que um repositório de Objectos Digitais (OD) e é estes que é preciso definir em cada contexto de aplicação. No nosso caso, o OD é um trabalho prático e a sua estrutura e composição deverá ser pensada e especificada.
O grau de liberdade é grande no entanto sugere-se o seguinte esqueleto estrutural como ponto de partida:
- um trabalho prático pode ser constituído por três componentes: relatório, apresentação, aplicação;
- o relatório deverá ser constituído por um ficheiro em PDF podendo opcionalmente ter ainda o ficheiro TeX ou XML que lhe deu origem (será necessário pensar quais os campos de metainformação técnica que faz sentido acrescentar para cada um destes tipos de ficheiro);
- a apresentação deverá ser constituída por um ficheiro em PDF podendo opcionalmente ter ainda o ficheiro PPT ou XML que lhe deu origem (será necessário ... metainformação técnica ...);
- a aplicação deverá ser constituída por um conjunto de ficheiros zipado (código fonte, makefile, README, ...);
- para alem de tudo isto o OD terá alguns campos de metainformação própria. A título de exemplo sugerem-se os seguintes:
- título, subtítulo
- autor(es) (nome, email, id, ...)
- orientador (nome, email, ...)
- contexto (disciplina, curso, ...)
- palavras-chave (a extrair da taxonomia da ACM)
- resumo
- links para recursos relacionados
- ...
Tarefas a Desenvolver
Para concretizar o trabalho será necessário realizar as seguintes tarefas, algumas das quais podem prossegiur em paralelo:
- Análise, caracterização e especificação da estrutura e composição de um OD;
- Derivação do modelo relacional que servirá para armazenar os ODs (depois de armazenados passarão a ser AIP);
- Criação da base de dados (por exemplo em MySQL);
- Criação de uma interface Web (Website) para incorporação de ODs (trata-se de criar um mecanismo de ingestão semi-automática);
- Criação de uma interface Web para pesquisar e aceder aos ODs armazenados (HTML + PHP, JAVA, Perl, ...);
- Análise do problema com vista a conceber a arquetectura do sistema ADTPs e a funcionalidade a incluir (será usada a notação UML para a análise);
- Identificação dos standards a usar para o manifesto e os formatos de arquivo.
Escalonamento de Avaliações
Para uma avaliação contínua, e uma evolução constante no desenvolvimento do projecto integrado, serão realizadas as seguintes avaliações:
- Entrega de um relatório com a especificação da estrutura dos trabalhos práticos a armazenar, bem como a estrutura da base de dados a ser utilizada no sistema (7 de Dezembro)
- dado que não existiu aula a 3 de Dezembro, o prazo foi alargado a 14 de Dezembro
- enviar relatório (PDF,XML,...) para ambs@di.
- Entrega da base de dados e interface para a inserção assistida de trabalhos práticos (21 de Dezembro).
- Entrega das interfaces de pesquisa (baseada em keywords, e baseada em taxonomia) de trabalhos práticos (18 de Janeiro).
Propostas de trabalho para o Segundo Semestre
Q1: Disseminação
Em relação ao trabalho desenvolvido, é necessário completar o ciclo de vida de um arquivo com a disseminação de pacotes. Assim, após a pesquisa de um trabalho prático (e de o utilizador ter encontrado o trabalho em
causa), deve ser possível:
- descarregar cada trabalho prático num ZIP completo;
- descarregar um ZIP com o Relatório (ou apresentação, ou código)
- Para ajudar a selecção do conteúdo que se quer descarregar, deve ser possível
- navegar interactivamente sobre o filesystem do Trabalho Prático, acedendo on-line à árvore de directorias, e vizualização de ficheiros.
Q2: Recuperação de Documentos pesquisando o conteúdo (IR)
Implementar um sistema de pesquisa textual sobre os ficheiros do relatório (em alternativa ou complemento, sugere-se a indexação de código fonte para pesquisa por nomes de funções, ou mesmo pesquisa textual sobre código C);
Q3: Construção de Documentos
A criação de documentos a partir dos TP arquivados: por exemplo, uma lista de documentos citados pelos vários relatórios; um portfólio dos trabalhos realizados por um aluno, ou pela turma de um professor, etc.
Q4: Partilha de arquivos (consulta automatica)
Implementar uma API de pesquisa sobre o arquivo através de
WebServices? , de modo a que os vários arquivos possam consultar a base de trabalhos práticos dos outros arquivos. (Este trabalho levará a uma discussão prévia nas aulas de PI sobre a API a definir).
API
- TextSearch: Query ----> Result*
- Query: String do género: word AND word
- Result: Um resultado é um bloco HTML com título, link para o objecto digital, e autores.
- TaxonomySearch: Category+ ----> Result*
- Category: Código ACM de uma categoria da taxonomia
- Result: Um resultado é um bloco HTML com título, link para o objecto digital, e autores.
- KeywordSearch: Keyword+ ----> Result*
- Keyword: uma palavra chave ou um par "campo:palavra-chave". Os campos suportados: título, autor, oientador e resumo.
- Result: Um resultado é um bloco HTML com título, link para o objecto digital, e autores.
Além dos 4 pontos anteriores, resolva ainda uma das questões abaixo à sua escolha.
Q5a:
Permitir que os TPs sejam classificados por uma árvore classificativa genérica (ontologia, com diferentes tipos de relação) e não apenas por uma taxonomia fixa (ACM);
Q5b:
Desenvolver uma API sobre o repositório de forma a que se possa programar sobre ele, ou seja criar operações que trabalhem sobre os TPs arquivados, p.ex. para retirar e compor meta-informação, fazer resumos de relatórios, extrair comentários de programas, traduzir os comentários ou mesmo os relatórios, etc.;