Projeto Memento
O protocolo Memento permite que os utilizadores vejam um recurso disponível através da Web, tal como era numa determinada data do passado. O utilizador apenas necessita de saber o URL do recurso que pretende encontrar.
Os utilizadores da Web têm dificuldade todos os arquivos Web que existem e em saber qual destes conterá a versão arquivada do recurso que procuram. O protocolo Memento é uma solução que permite que os utilizadores acedam a um recurso da Web tal como era numa determinada data no passado.
O Memento é um projeto financiado pelo Programa Nacional de Infra-estrutura e Preservação de Informação Digital (NDIIPP) dos Estados Unidos, com o objectivo de detectar mais facilmente os conteúdos arquivados na Web.O projeto está a ser liderado pelo Laboratório Nacional de Los Alamos e a Universidade de Old Dominion.
Descrição técnica
editarExistem vários arquivos na web, que recolhem versões específicas dos recursos da web. O Memento permite que o utilizador faça a transição entre os arquivos em busca do melhor recurso arquivado correspondente à data desejada.
Memento é definido na RFC 7089[1] como uma implementação da dimensão temporal da escolha de conteúdo, como definido por Tim Berners Lee em 1996[2]. O protocolo HTTP realiza negociação de conteúdo via cabeçalhos HTTP. O Memento utiliza o cabeçalho HTTP Accept-Datetime para que os clientes possam solicitar um recurso numa determinada data ao servidor. O servidor Web por sua vez responde com a versão arquivada do recurso mais adequada para data solicitada. Este processo é referido como negociação de data e hora (datetime negotiation).
A tabela abaixo mostra os diferentes cabeçalhos disponíveis para HTTP que permitem que clientes e servidores encontrem o conteúdo desejado pelo utilizador.
Cabeçalho De Solicitação | Cabeçalho De Resposta | Dimensão | Exemplos | Referência |
---|---|---|---|---|
Accept | Content-Type | tipo de conteúdo da representação | text/html
text/plain image/png |
RFC 7231[3] |
Accept-Language | Content-Language | a linguagem da representação | en
|
RFC 7231 |
Accept-Encoding | Content-Encoding | médio, normalmente de compressão, que o conteúdo foi codificado com | compress
gzip deflate |
RFC 7231 |
Accept-Charset | Content-Type | o conjunto de caracteres utilizado pela página web | iso-8859-5
unicode-1-1 |
RFC 7231 |
Accept-Datetime | Memento-Datetime | o tempo da representação | Fri, 15 Aug 2014 13:43:03
GMT |
RFC 7089 |
Para entender o Memento, deve-se perceber que o campo do cabeçalho HTTP[4], Last-Modified, não reflete necessariamente quando uma versão em particular da página da Web foi criada. Além disso, o cabeçalho Last-Modified pode não existir em alguns casos. Para fornecer mais informações, o campo Memento-Datetime no cabeçalho foi introduzido para indicar quando uma versão específica de uma página da Web foi observada na Web[5].
O diagrama acima mostra o processo de 3 etapas pelo qual o Memento encontra a melhor página da web arquivada para a data (datetime) fornecida pelo utilizador. O processo funciona da seguinte forma:
- O cliente Memento contata o recurso original para ver se ele retornará informações sobre um TimeGate (URI-G) no cabeçalho.
- O cliente Memento usa o cabeçalho de solicitação Accept-Datetime para enviar a data e hora (datetime) desejada pelo usuário para o URI-G descoberto na etapa anterior. A maioria dos recursos na web ainda não retornam um URI-G, por isso a maioria dos clientes Memento usam uma lista predefinida de TimeGates para realizar esta etapa. O TimeGate, em seguida, retorna um código de status de redirecionamento 302 e um cabeçalho Location para informar ao cliente onde localizar o recurso arquivado (URI-M).
- O cliente Memento solicita o recurso arquivado (URI-M) como qualquer outra página da web. A resposta para o URI-M contém um Memento-Datetime indicando quando foi observado na web.
Desta forma, o Memento utiliza a infra-estrutura existente de HTTP para atingir os objetivos de encontrar a melhor página da Web arquivada com base na data e hora (datetime) e URI desejados pelo utilizador.
O protocolo Memento é suportado principalmente por arquivos da web mas também se adequa a outros tipos de repositórios que preservem o histórico das versões de objectos ao longo do tempo e que os disponibilizam através da Web, tais como plataformas Wiki ou repositórios de código. O protocolo Memento permite a interoperabilidade com outros arquivos da web e serviços externos de agregação de pesquisa (ex. Memento Time Travel portal e oldweb.today). Recomenda-se que os repositórios que disponibilizam recursos versionados através da Web suportem o protocolo Memento para maximizar a visibilidade e utilização dos serviços disponibilizados.
Referências
editar- ↑ Von de Sompel, Herbert,; Michael, Nelson,; Robert, Sanderson,. «HTTP Framework for Time-Based Access to Resource States -- Memento». tools.ietf.org (em inglês). Consultado em 27 de fevereiro de 2017
- ↑ Berners Lee, Tim (1996). «Web Architecture: Generic Resources"». World Wide Web Consortium (W3C)
- ↑ RFC 7231: Protocolo de Transferência de Hipertexto (HTTP/1.1): Semântica e de Conteúdo
- ↑ Roy, Fielding,; Julian, Reschke,. «Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests». tools.ietf.org (em inglês). Consultado em 27 de fevereiro de 2017
- ↑ Nelson, Michael L. (5 de novembro de 2010). «Web Science and Digital Libraries Research Group: 2010-11-05: Memento-Datetime is not Last-Modified». Web Science and Digital Libraries Research Group. Consultado em 27 de fevereiro de 2017