Engenharia Linguagens

Engenharia de Linguagens

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).

Esquema do modelo OAIS

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:

  1. Análise, caracterização e especificação da estrutura e composição de um OD;
  2. Derivação do modelo relacional que servirá para armazenar os ODs (depois de armazenados passarão a ser AIP);
  3. Criação da base de dados (por exemplo em MySQL);
  4. Criação de uma interface Web (Website) para incorporação de ODs (trata-se de criar um mecanismo de ingestão semi-automática);
  5. Criação de uma interface Web para pesquisar e aceder aos ODs armazenados (HTML + PHP, JAVA, Perl, ...);
  6. 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);
  7. 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:

  1. 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.
  2. Entrega da base de dados e interface para a inserção assistida de trabalhos práticos (21 de Dezembro).
  3. 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.;


r16 - 02 Jun 2008 - 11:37:08 - AlbertoSimoes
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Syndicate this site RSSATOM