Omeka PURL Plugin Torino, 30 settembre 2013 Emilio Remogna
1 Estendere Omeka
1.1 Plugin - Plugin: componente software che aggiunge - se installato - una specifica funzionalità ad una applicazione (software) esistente.
1.2 - Estensione funzionale di Omeka - È possibile aggiungere funzionalità ad Omeka installando plugin ad hoc. - È possibile scaricare e installare plugin sviluppati dalla Community Omeka. - È possibile creare plugin from scratch, secondo proprie e specifiche esigenze. - Omeka è del tutto "personalizzabile". - Le estensioni funzionali sono virtualmente infinite.
2 PURL plugin per Omeka
2.1 Premessa - Le risorse Web (= l'informazione fruibile mediante Web) possono cambiare; uno dei cambiamenti possibili è il mutamento di valore del Web address (= l'indirizzo mediante cui la risorsa è reperibile - URL). - Il mutamento di valore del Web address di una risorsa Web può avere impatto negativo (= not found) sui sistemi (= altre applicazioni, client) in cui si dia una dipendenza da quella medesima risorsa. - È preferibile che i sistemi dipendenti da una risorsa Web possano riferirsi a quella medesima risorsa mediante un identificativo della risorsa introdotto secondo opportune regole - che A) resti invariato a fronte dei possibili mutamenti del valore del Web address della risorsa e B) che consenta di reperire COMUNQUE la risorsa.
2.1 Premessa - "PURLs are Web addresses or Uniform Resource Locators (URLs) that act as permanent identifiers in the face of a dynamic and changing Web infrastructure." - I PURL introducono un livello di indirezione: la risorsa viene "indicata" (= puntata) mediante un identificativo persistente. - Un PURL è un Web address che punta un altro Web address (il PURL "vive" accanto al Web address della risorsa.) - La richiesta (da Web browser) di un PURL è tipicamente un redirect alla risorsa puntata. - Un PURL può essere aggiornato: è possibile modificare il valore del Web address puntato.
2.1 Premessa - I PURL consentono CONTINUITÀ nel riferimento alle risorse Web. - Occorrono componenti software per costituire e mantenere l'insieme dei PURL assegnati alle risorse e per fare in modo che i PURL siano "risolti" (= portino alla risorsa) quando richiesti.
2.2 Breve descrizione del PURL plugin - Il PURL plugin per Omeka aggiunge ad Omeka la capacità di creare e gestire, per ciascuno degli item pubblici memorizzati in Omeka, un PURL. - Il PURL plugin per Omeka è stato scritto from scratch.
2.3 Plugin hooks - Il PURL plugin per Omeka sfrutta meccanismi propri di Omeka detti "hook" (= gancio). - Gli hook sono punti di "aggancio" - innesto - che consentono di eseguire funzioni personalizzate (= proprio codice) in occasione di (= quando si verificano) specifici eventi del software Omeka (es. creazione di un item, modifica di un item, cancellazione di un item,...). - Esistono hook (stabiliti nel tipo e nel numero dagli sviluppatori di Omeka) per buona parte degli eventi "di significato".
2.3 Plugin hooks - Il PURL plugin, sfruttando gli hook, modifica il comportamento di default di Omeka relativo al trattamento degli oggetti di tipo ITEM (= la singola risorsa); il PURL plugin, in particolare, è agganciato agli hook 'after_save_item', 'after_delete_item' (= "fa qualcosa" dopo le operazioni SAVE - create, update - e DELETE eseguite su uno o più item).
3 La logica del PURL plugin
3.1 Item privati e item pubblici - In Omeka gli item possono essere privati o pubblici (valore dello stato della pubblicazione). - Gli item pubblici sono di norma fruibili senza necessità di autenticazione. - Per un item esistente sono ammessi i passaggi da privato a pubblico e da pubblico a privato.
3.2 I diversi tipi di PURL - I PURL sono Web address; possono essere richiesti (request) restituiscono una risposta (response). - I PURL sono classificati sulla base del tipo di risposta data a una richiesta: 301 = moved permanently to a target URL (Moved Permanently); 302 = simple redirection to a target URL (Found); 303 = see other URLs - use for Semantic Web resources - (See Other); 307 = temporary redirect to a target URL (Temporary Redirect); 404 = temporarily gone (Not Found); 410 = permanently gone (Gone)
3.3 Le condizioni (La cardinalità tra ITEM e PURL è 1:1) - Se un item viene creato come pubblico viene immediatamente creato il relativo PURL. - Se un item privato diventa pubblico E non vi è ancora un PURL associato viene creato il relativo PURL. - Se un item pubblico (quindi avente un PURL) diventa privato il PURL relativo viene modificato nel tipo 404 (non viene più eseguito un redirect verso il target URL, ma viene servita una pagina "Not found - Temporarily gone"). - Se un item privato diventa pubblico E vi è già un PURL associato (= l item era già stato in precedenza pubblico) il PURL relativo viene modificato nel tipo 302.
3.3 Le condizioni - Se un item viene cancellato (= delete) il relativo PURL viene disattivato (tombstoned PURL). (Se, quando il plugin viene installato, già esistono item pubblici, il pregresso viene recuperato).
3.4 L interazione con il set DC - Quando viene associato un PURL ad un item, il valore del PURL viene aggiunto ai valori del campo DC IDENTIFIER dell item.
4 L architettura
4.1 I componenti - Il sistema di creazione e gestione dei PURL prevede l interazione tra un componente CLIENT ed un componente SERVER. - Il componente client è il PURL plugin per Omeka. - Il componente server è un PURLZ server (OCLC - Zepheira). - La comunicazione tra i componenti sfrutta il protocollo HTTP e i metodi HTTP GET, POST, PUT, DELETE (REST).
4.1 Il server PURLZ - I PURL non vivono in Omeka, ma all interno di un server PURLZ. - Il server PURLZ è un servizio separato da Omeka. - Il server PURLZ conserva gli identificativi persistenti; le associazioni PURL-TargetURL sono memorizzate nel server PURLZ. - Il server PURLZ agisce principalmente come RESOLVER dei PURL. La richiesta di un PURL è indirizzata al server PURLZ; il server PURLZ risponde con un redirect verso il targeturl relativo. - Il server PURLZ attualmente usato è il servizio pubblico di OCLC (purl.org). Nel server PURLZ di OCLC è stato creato un dominio /unito/digitunito.
4.1 Il client (PURL plugin per Omeka) - Il client (PURL plugin per Omeka) spedisce al server PURLZ istruzioni per la creazione, la modifica e la cancellazione dei PURL. - Le istruzioni vengono spedite quando si verificano eventi di significato relativi ad un item (creazione, modifica, cancellazione). - Per la composizione di un PURL associato alla risorsa viene usato il valore del campo ID assegnato da Omeka alla risorsa. http://www.omeka.unito.it/omeka/items/show/375 http://purl.org/unito/digitunito/375
5 Il progetto
5.1 Open source - Il PURL plugin per Omeka è un progetto Open Source. - https://github.com/aemilius77/omeka-purl-plugin