Ficha Nº10
Exercício Nº1
2003.11.26

BibTex em XML


Como já deves saber o bibtex é uma aplicação para gerir bases de dados biliográficas que usa um formato próprio e que normalmente acompanha o LaTeX.

Nesta ficha proposmo-te que faças um pequeno protótipo tendo em atenção as especificidades do bibtex e acrescentando-lhe mais algumas que poderão ser interessantes.

O elemento principal deverá ser bibliography.

Uma entrada biliográfica (bibitem) pode pertencer a um de vários tipos, tem um id, e pode identificar uma categoria (category). A seguir apresentam-se os tipos que deverás contemplar no desenho da linguagem e os respectivos campos de informação.
article
obrigatórios
author; title; journal; year;
opcionais
volume; number; pages; month; note;
book
obrigatórios
author ou editor; title; publisher; year;
opcionais
volume ou number; series; address; edition; month; note;
inproceedings
obrigatórios
author; title; booktitle; year;
opcionais
editor; volume ou number; series; pages; address; month; organization; publisher; note;
masterthesis
obrigatórios
author; title; school; year;
opcionais
type; address; month; note;
misc
obrigatórios
nenhum
opcionais
author; title; howpublished; month; year; note;
phdthesis
obrigatórios
author; title; school; year;
opcionais
type; address; month; note;
proceedings
obrigatórios
title; year;
opcionais
editor; volume ou number; series; address; publisher; month; note; organization;
techreport
obrigatórios
author; title; institution; year;
opcionais
type; number; address; month; note;
unpublished
obrigatórios
author; title; note;
opcionais
month; year;

Realize então as seguintes alíneas:

(a)Especifique um Schema que defina a linguagem de anotação pretendida.

(b)Construa uma stylesheet XSL para converter a bibliografia do JCR para a linguagem agora definida.

(c)Especifique uma stylesheet XSL que gere uma página HTML com a lista de todas as entradas ordenadas cronologicamente.

(d)Muitas vezes os nomes de autores e editores repetem-se. Acrescente ao Schema a possibilidade de um autor ou editor poder ser indicado por referência (para isto funcionar cada autor e editor terá de ter um id).

(e)Acrescente ao Schema um outro elemento principal de nome ontology que permita definir categories e subcategories. Cada bibitem deverá ter também um atributo para referenciar a categoria a que pertence. Acrescente à stylesheet a geração de um índice por categorias.