DSpace Workshop Joan Caparrós Técnico líder de proyectos en la Unidad de Cálculo y Aplicaciones en Consorcio de Servicios Universitarios de Cataluña (CSUC) Arequipa, Perú 18/07/2018 Sobre mí Joan Caparrós es licenciado en Ingeniería Informática y máster en Seguridad de las Tecnologías de la Información y de las Comunicaciones (2015) y en Diseño y Programación de Apps (2017). Desde 2009 trabaja en el Consorcio de Servicios Universitarios de Cataluña (CSUC), donde es técnico líder de proyectos en la Unidad de Cálculo y Aplicaciones. El CSUC es un consorcio público integrado por 10 universidades catalanas y el Gobierno de Cataluña con la misión de compartir o mancomunar servicios académicos, bibliotecarios, de transferencia del conocimiento y de gestión de las entidades consorciadas para potenciar sinergias y mejorar la eficiencia. Miguel Loayza (1960) Juan Seminario (1964) Hugo Sotil (1973) Pedro Aicart (1973) Consorcio de Servicios Universitarios de Cataluña CSUC El Consorcio de Servicios Universitarios de Cataluña (CSUC) ● Generalitat de Catalunya ● Universitat de Barcelona (UB) ● Universitat Autònoma de Barcelona (UAB) ● Universitat Politècnica de Catalunya (UPC) ● Universitat Pompeu Fabra (UPF) ● Universitat de Girona (UdG) ● Universitat Rovira i Virgili (URV) ● Universitat de Lleida (UdL) ● Universitat Oberta de Catalunya (UOC) ● Universitat Ramon Llull (URL) ● Universitat de Vic (UVic) Nuestros servicios Repositorios cooperativos Repositorios digitales TDX RECERCAT RACO PADICAT RECYT MDC MDX PADICYT CALAIX FILMOTECA SCIENTIA MACBA 17 años de repositorios... 2001 2005 2006 2006 2006 2006 2009 2009 2010 2012 2015 2015 Contenido Tesis TFG Revistas Websites Colecciones Materiales Revistas Websites patrimoniales didácticos Patrimonio Patrimonio Dept. Cultura Dept. Salud cinematográfico artístico Formatos: Texto, imagen, vídeo... Texto (PDF) Texto (PDF) Texto (PDF) WARCs Texto (PDF) Imagen Texto (PDF) WARCs Texto, Texto, Texto, Texto, imagen, imagen, imagen, imagen, audiovisual audiovisual audiovisual audiovisual Programas: DSpace, OJS... DSpace DSpace OJS Heritrix, etc. OJS CONTENTdm DSpace Heritrix, etc. DSpace DSpace DSpace DSpace Programas: DSpace, OJS... TDX www.tdx.cat RECERCAT www.recercat.cat RACO www.raco.cat PADICAT www.padicat.cat RECYT http://recyt.fecyt.es MDC http://mdc.cbuc.cat MDX www.mdx.cat PADICYT http://padicyt.es CALAIX http://calaix.gencat.cat Filmoteca de Catalunya http:://repositori.filmoteca.cat SCIENTIA http://scientiasalut.gencat.cat MACBA http://repositori.macba.cat PRC https://portalrecerca.csuc.cat Índice ● Introducción a DSpace ○ Qué es DSpace ○ Las últimas versiones y la nueva versión DSpace 7 ○ XMLUI y JSPUI: comparación ○ Requisitos ○ Maven & Cocoon ○ Primera instalación de DSpace ● Configuraciones ○ Configuraciones básicas ○ Emails ○ Internacionalización ○ Autenticación ○ Media Filters ○ Curation Tasks ○ Proceso de envío (Workflows) ○ Formularios / Vocabularios controlados ○ Discovery, Search, and Browse ○ Estadísticas Índice ● Personalización ○ Personalización de cabecera/pie de página ○ Personalización de la vista del Ítem ○ Añadir búsquedas facetadas ○ Configuración de un OAI crosswalk personalizado ● Mantenimiento de DSpace ○ Calendario de releases de DSpace ○ Estrategias para migrar versiones ○ Estrategias para backups Introducción a DSpace ¿Qué es DSpace? Inicialmente creado entre HP y MIT. Ahora soportado por DuraSpace. Software especializado en preservación digital, catalogación, indexación. ¿Qué es DSpace? A destacar: ● Código abierto ● Provee herramientas para la administración de colecciones digitales ● Soporta una gran variedad de datos, (libros, tesis, fotografías, films, vídeo, datos de investigación..) ● Los datos son organizados como ítems que pertenecen a una colección; cada colección pertenece a una comunidad. ● Es liberado bajo una licencia BSD permitiendo extender y personalizar Ampliamente utilizado a nivel mundial para archivo o almacenamiento digital: ● Repositorios institucionales ● Repositorios de objetos de aprendizaje ● Tesis electrónicas (eTheses) ● Administración de Registros Electrónicos ● Preservación digital ● Publicaciones ● ... ¿Qué es DSpace? Arquitectura ¿Qué es DSpace? Arquitectura Capa de Capa de lógica de Capa de aplicación almacenamiento negocios Interacción con la base Administración Aplicación web: JSPUI y de datos Búsqueda XMLUI Almacenamiento de Exploración OAI-PMH Data Provider bitstreams Gestión de usuarios y Estadísticas grupos Importar/Exportar Autorización MediaFilter Carga de documentos Workflow Handle manager Abstracción en Comunidades, Colecciones e Items ¿Qué es DSpace? Capa de almacenamiento Almacenamiento de bitstreams (ficheros): ● Local: el almacenamiento se realiza en el sistema de archivos local al servidor en el que funciona la aplicación ● Storage Resource Broker (SRB): permite tener un sistema de archivos distribuido ¿Qué es DSpace? Capa de aplicación XMLUI (MANAKIN) COCOON XSLT CSS API XMLUI JSPUI rdf solr rest sword sword2 oai ¿Qué es DSpace? Capa de aplicación - Contextos: xmlui Interfaz de usuario basada en XML (XMLUI) jspui Interfaz de usuario basada en JSP (JSPUI) solr (obligatorio) Motor de búsqueda y navegación oai Motor para exportación y recolección de Metadatos y Bitstream (OAI-PMH y OAI-ORE) rdf Interfaz DSpace RDF (admite Linked Open Data). rest API REST de DSpace sword Interfaz DSpace SWORDv1. swordv2 Interfaz DSpace SWORDv2. ¿Qué es DSpace? Capa de lógica de negocio "Comunidad" es una agrupación de colecciones y / o "Subcomunidades". Comunidad "Colección" es un grupo de elementos relacionados en un archivo. Colección Los "elementos/ítems" son registros que describen los archivos que se archivan, Elemento Registro Dublin utilizando el esquema de metadatos Dublin core Core. "Bundle" es una agrupación de archivos asociados con un elemento. "Bitstreams" son los archivos individuales Formato Bitstream agrupados en un paquete y asociados con un elemento (por ejemplo, texto de licencia, jpegs, tiffs, pdfs, doc, xml). ¿Qué es DSpace? Jerarquía https://wiki.duraspace.org/display/DSDOC6x/Functional+Overview Las últimas versiones y la nueva versión DSpace 7 1.5.0 1.7.0 3.0 5.0 Mar 2008 Dec 2010 Nov 2012 Jan 2015 7.0 1.5.2 1.7.3 3.6 5.9 2018 Apr 2009 Jul 2013 Mar 2016 Jun 2018 END OF LIFE / UNSUPPORTED 2006 2008 2010 2010 2011 2012 2013 2015 2016 20018 1.4.0 1.6.0 1.8.0 4.0 6.0 July 2006 Mar 2010 Nov 2011 Dec 2013 Oct 2016 1.4.2 1.6.2 1.8.3 4.9 6.3 May 2007 Jun 2010 Jul 2013 Jun 2018 Jun 2018 DSpace 6.3 - La versión estable actual Esta versión estable y corregida de errores se lanzó en junio de 2018. Esta es la versión recomendada para usar. DSpace 7.0 - El próximo lanzamiento importante. El Grupo de trabajo DSpace 7 ha comenzado a desarrollar esta versión, que incluye una nueva interfaz de usuario (UI Angular) y una API REST. El objetivo de lanzamiento es para una versión beta a mediados de 2018, con una versión final más adelante en el año. Las últimas versiones y la nueva versión Dspace 7 XMLUI y JSPUI: comparación ¿Qué interfaz usar? XMLUI o JSPUI ● JSPUI es la versión más extendida ya que está presente desde las primeras versiones de DSpace. ● XMLUI permite de forma extremadamente simple, mucho más que JSPUI, aplicar apariencias radicalmente diferentes a distintas colecciones. ● Algunas de las nuevas funcionalidades presentes en DSpace están soportadas únicamente en XMLUI, como la configuración de un Workflow avanzado. ● Desarrollar en XMLUI es sustancialmente más complejo que en JSPUI. La elección dependerá siempre de sus necesidades. Requisitos UNIX OS o Microsoft Windows. Java JDK 7 o 8 (OpenJDK o Oracle JDK). Apache Maven 3.0.5 o superior (3.3.9+)* Acceso a internet. Apache Ant 1.8 o posterior. Base de datos relacional (PostgreSQL o Oracle) ● PostgreSQL 9.4 o posterior (con pgcrypto instalado). ● Oracle 10g o posterior. Servlet Engine (Apache Tomcat 7 o posterior, Jetty, Caucho Resin o equivalente). Git (control de versiones de código). Maven & Cocoon ● Herramienta de compilación y empaquetado (jar / war). ● Gestiona las dependencias de otras librerías fácilmente. ● Tiene diferentes plugins con diferentes funcionalidades dependiendo de si es un proyecto EJB, web, etc. ● Puede comunicarse con controles de versión de código. ● Gestiona los diferentes proyectos de DSpace mediante las definiciones de los distintos POM (Project Object Model). Maven & Cocoon ● Herramienta de Apache encargada de hacer las transformaciones XSLT. ● Se basa en el concepto de “Pipeline”. ○ Primero se genera el XML. ○ Después se determina el tipo de transformación a aplicar. ○ Por último se serializa hacia un html, pdf, etc. Maven & Cocoon Pipeline Primera instalación de DSpace 1. Añadir el usuario DSpace al sistema $ useradd -m dspace 2. Descargar la última versión estable del software $ git clone https://github.com/DSpace/DSpace.git $ cd Dspace $ git checkout dspace-6_x 3. Preparación de la base de datos PostgreSQL $ createuser --username=postgres --no-superuser --pwprompt dspace $ createdb --username=postgres --owner=dspace --encoding=UNICODE dspace # Como superusuario, habilitar la extensión pgcrypto extensión $ psql --username=postgres dspace -c "CREATE EXTENSION pgcrypto;" Oracle $ mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.4.0 -Dpackaging=jar -DgeneratePom=true Primera instalación de DSpace Modificar [dspace-source] / pom.xml #Añadir con la librería correspondiente de nuestra versión de Oracle com.oracle ojdbc6 11.2.0.4.0 4. Configurar DSpace mediante la edición del fichero [dspace-source] / config / local.cfg 5. Compilar DSpace (usuario tomcat) $ mvn package o $ mvn package -Dmirage2.on=true (para temas responsive basados en Mirage2) Primera instalación de DSpace 6. Parar tomcat (usuario root) $ /etc/init.d/tomcat8 stop 7. Instalar DSpace (usuario tomcat) $ cd[dspace-source]/dspace/target/dspace-installer $ ant fresh_install 8. Encender tomcat (usuario root) $ /etc/init.d/tomcat8 start Primera instalación de DSpace Práctica Acceso web repositorio local http://localhost:8081 DSpace http://localhost:8081/login ● Usuario administrador: demo@dspace.org ● Contraseña: dspace SSH puerto 9022 ● Usuario: dspace ● Contraseña: dspace $ ssh -p 9022 dspace@localhost Práctica Objetivo: ● Creación de una Comunidad ● Creación de una Colección Configurando DSpace Configuraciones básicas Configuración inicial (local.cfg): cree su propio archivo de configuración [dspace-source] / dspace / config / local.cfg Los ajustes seguidos con un asterisco (*) son muy recomendables, mientras que los demás son opcionales durante la instalación inicial y pueden personalizarse en otro momento dspace.dir* La ruta a [dspace-bin]. dspace.hostname Nombre de dominio del servidor web. dspace.baseUrl* URL completa del servidor incluyendo el puerto. dspace.name Nombre de la instancia del proyecto. solr.server* URL completa hacia el servidor Solr. default.language Lenguaje por defecto de todos los metadatos. db.url* La URL JDBC completa de su base de datos. db.driver* Driver asociado a la base de datos PostgreSQL o Oracle. db.dialect* Dialecto asociado a la base de datos PostgreSQL o Oracle. Configuraciones básicas db.username* Usuario de la base de datos. db.password* Contraseña de la base de datos. db.schema* Nombre del schema a utilizar. mail.server Nombre de dominio de su servidor de correo saliente. mail.from.address la dirección "From:" indicada en los correos electrónicos enviados por DSpace. mail.feedback.recipient Dirección de correo para comentarios. mail.admin Dirección de correo del administrador del sitio DSpace. mail.alert.recipient Dirección de correo para envio de errors/alerts del servidor. mail.registration.notify Dirección de correo para notificaciones de registros de usuario. Emails [dspace-source] / dspace / config / emails / bte_batch_import_error doi_maintenance_error change_password export_success export_error flowtask_notify feedback healthcheck harvesting_error internal_error register registration_notify request_item.admin request_item.author submit_archive submit_reject subscription submit_task bte_batch_import_success suggest Emails [dspace-source] / dspace / config / emails / register # E-mail sent to DSpace users when they register for an account # # Parameters: {0} is expanded to a special registration URL # # See org.dspace.core.Email for information on the format of this file. # Subject: DSpace Account Registration To complete registration for a DSpace account, please click the link below: {0} If you need assistance with your account, please email dspace-help@myu.edu or call us at xxx-555-xxxx. The DSpace Team Internacionalización Instalación multilenguaje Para implementar una versión multilingüe de DSpace, debe configurar dos parámetros en [dspace-source] / dspace / config / local.cfg default.locale = es webui.supported.locales = es, en Los Locales pueden tener el formato country, country_language, country_language_variant. De acuerdo con los idiomas que desea admitir, debe asegurarse de que todos los archivos relacionados con i18n estén disponibles. Diccionarios Ubicación: [dspace-source] / dspace / modules / xmlui / src / main / webapp / i18n ● messages.xml ● messages_es.xml Estructura: Principal Internacionalización [dspace-source] / dspace / modules / xmlui / src / main / webapp / i18n / messages_es.xml Autenticación [dspace-source] / config / modules / authentication.cfg Authentication by Password (DEFAULT) plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.PasswordAuthentication [dspace-source] / config / modules / authentication-password.cfg authentication-password.domain.value = @mit.edu, .ac.uk authentication-password.login.specialgroup = My DSpace Group authentication-password.digestAlgorithm = SHA-512 IP Address based Authentication plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.IPAuthentication Archivo de configuraciones: [dspace-source] / config / modules / authentication-ip.cfg authentication-ip.GROUPNAME = 10.1.2.3, \ 13.5, \ 11.3.4.5/24, \ 12.7.8.9/255.255.128.0 Autenticación [dspace-source] / config / modules / authentication.cfg LDAP Authentication plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.LDAPAuthentication [dspace-source] / config / modules / authentication-ldap.cfg Shibboleth Authentication plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.ShibAuthentication [dspace-source] / config / modules / authentication-shibboleth.cfg X.509 Certificate Authentication plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.X509Authentication plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.PasswordAuthentication Archivo de configuraciones: [dspace-source] / config / modules / authentication-x509.cfg Métodos propios Pueden crear sus propios métodos de autenticación personalizado y agregarlo a la pila. Se recomienda utilizar el método existente más similar como modelo. Media Filters Transformando el contenido de DSpace ● DSpace puede aplicar filtros o transformaciones a archivos, creando contenido nuevo. ● Se incluyen filtros que extraen texto para la búsqueda de texto completo y crean miniaturas para elementos que contienen imágenes. ● Los mediafilters están controlados por el script DSpace filter-media desde los binarios de DSpace. https://wiki.duraspace.org/display/DSDOC6x/Mediafilters+for+Transforming+DSpace+Content Media Filters Media Filters disponibles PDF Text Extractor extrae el texto completo de los documentos PDF (texto o ocr - PDFBox). HTML Text Extractor extrae el texto completo de documentos HTML (HTML de Swing). Word Text Extractor extrae el texto completo de los documentos XML de Microsoft Word y Microsoft Word. (Apache POI). Excel Text Extractor extrae el texto completo de los documentos de Microsoft Excel. (Apache POI). PowerPoint Text Extractor extrae el texto completo de diapositivas y Microsoft PowerPoint (Apache POI). PDFBox JPEG Thumbnail crea imágenes en miniatura de la primera página de archivos PDF. JPEG Thumbnail crea imágenes en miniatura de archivos GIF, JPEG y PNG. Branded Preview JPEG crea una imagen de vista previa de marca para archivos GIF, JPEG y PNG. ImageMagick Image Thumbnail Generator crea miniaturas de archivos de imágenes (ImageMagick). ImageMagick PDF Thumbnail Generator crea imágenes en miniatura de la primera página de archivos PDF (ImageMagick y Ghostscript). https://wiki.duraspace.org/display/DSDOC6x/Mediafilters+for+Transforming+DSpace+Content Media Filters Generando las miniaturas / Ejecutar media filters JPEG Thumbnail crea imágenes en miniatura de archivos GIF, JPEG y PNG Activamos algunas configuraciones de visualización dentro del fichero [dspace-source] / dspace / config / dspace.cfg webui.browse.thumbnail.show = true xmlui.theme.mirage.item-list.emphasis = file $ /proyectos/dspace/bin/dspace filter-media -p "JPEG Thumbnail" -v Media Filters Añadiendo media filters personalizados Imagen Visor crea imágenes a resolución personalizada dentro del Bundle VISOR - ficheros JPEG i TIFF 1- Copiamos media filter de ejemplo $ cd /proyectos/src/DSpace $ cp /proyectos/materiales/FilterMedias/ImgFilter.java dspace/modules/additions/src/main/java/org/dspace/app/mediafilter/ Añadimos algunas configuraciones de visualización dentro del fichero [dspace-source] / dspace / config / dspace.cfg filter.plugins = Imagen Visor plugin.named.org.dspace.app.mediafilter.FormatFilter = org.dspace.app.mediafilter.ImgFilter = Imagen Visor filter.org.dspace.app.mediafilter.ImgFilter.inputFormats = JPEG, TIFF filter.tempfile.config = ${filter.tempfile.config} filter.exec.convert = convert -layers flatten filter.ImgFilter.thumbnail.config = -format jpg -resize 300 filter.ImgFilter.visor.config = -format jpg -resize 800 -density 72 Media Filters 2- Compilamos DSpace (usuario tomcat) $ su – tomcat $ cd /proyectos/src/DSpace $ mvn package -Dmirage2.on=true -o 3- Actualizamos versión de los binarios (usuario tomcat) $ cd dspace/target/dspace-installer $ ant update 4- Lanzamos proceso media filter (usuario tomcat) $ /proyectos/dspace/bin/dspace filter-media -i -p "Imagen Visor" Curation Tasks ● El objetivo del sistema de curación es proporcionar una forma simple y extensible para administrar las operaciones rutinarias sobre el contenido de un repositorio. ● Cada una de las operaciones es conocida como “tasks” (tareas). ● Las tareas pueden operar en cualquier objeto DSpace (comunidades, colecciones, elementos). ● DSpace proporciona tareas base y son extensibles para generar nuestras propias tareas. Algunos ejemplos de curation tasks podrían ser: aplicar un escaneo de virus a archivos dentro de elementos actualizar valores de metadatos basados en fechas actuales (copyright) comprobar valores de metadatos, presencia y valores de estos comprobar integridad de los ficheros asociados al elemento https://wiki.duraspace.org/display/DSDOC6x/Curation+System Curation Tasks Curation Tasks disponibles NoOpCurationTask Ninguna operación (Ejemplo) No UI ProfileFormats crea una tabla de formatos Bitstream para su distribución UI RequiredMetadata verifica los campos obligatorios según UI submission-forms.xml. ClamScan conjunto de métodos para escanear ficheros usando el No UI daemon clamav MicrosoftTranslator traduce los campos de metadatos utilizando Microsoft No UI Translation API v2 MetadataValueLinkChecker comprueba los enlaces indicados en todos los campos de UI metadatos ^http: // o ^https: // [dspace-source] / config / modules / curate.cfg ### Task Class implementations plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.NoOpCurationTask = noop plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.ProfileFormats = profileformats plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.RequiredMetadata = requiredmetadata plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.ClamScan = vscan plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.MicrosoftTranslator = translate plugin.hnattmpesd:.o//rwg.diskpia.dceu.cruarastep.Caucraeti.oonrTgas/kd =is oprgl.adsyp/aDceS.cDtasOk.gCe6nexra/Cl.MuetraadtaitoaVna+luSeLyinsktCehmecker = checklinks https://wiki.duraspace.org/display/DSDOC6x/Curation+System Curation Tasks Añadiendo curation tasks personalizados ActualizarDCRights actualiza el metadato dc.rights buscando y reemplazando UI cadenas similares a “© UCSP, 2017” 1- Copiamos media filter de ejemplo $ cp /proyectos/materiales/curation_tasks_java/ActualizarDCRights.java dspace/modules/additions/src/main/java/org/dspace/ctask/general/ 2- Añadimos las referencias a la nueva tarea accesible desde UI [dspace-source] / config / modules / curate.cfg # add new tasks here (or in additional config files) plugin.named.org.dspace.curate.CurationTask = org.dspace.ctask.general.ActualizarDCRights = actualitzarrights curate.ui.tasknames = actualizarrights = Actualizar DCRights Curation Tasks 3- Compilamos DSpace (usuario tomcat) $ su – tomcat $ cd /proyectos/src/DSpace $ mvn package -Dmirage2.on=true -o $ cd dspace/target/dspace-installer 4- Actualizamos versión de los binarios (usuario tomcat) $ cd dspace/target/dspace-installer $ ant update Curation Tasks Ejecutar curation task (usuario tomcat) Mediante comandos [dspace-bin]/dspace curate -h usage: CurationCli -e,--eperson email address of curating eperson -h,--help help -i,--id Id (handle) of object to perform task on, or 'all' to perform on whole repository -q,--queue name of task queue to process -r,--reporter reporter to manage results - use '-' to report to console. If absent, no reporting -s,--scope transaction scope to impose: use 'object', 'curation', or 'open'. If absent, 'open' applies -t,--task curation task name -T,--taskfile file containing curation task names -v,--verbose report activity to stdout whole repo: CurationCli -t estimate -i all single item: CurationCli -t generate -i itemId task queue: CurationCli -q monthly $ /proyectos/dspace/bin/dspace curate -i -t actualitzarrights Curation Tasks Ejecutar curation task Mediante interfaz gráfica Proceso de envío (Workflows) https://wiki.duraspace.org/display/DSDOC6x/Functional+Overview Proceso de envío (Workflows) Roles BasicWorkflow: ● Publicadores Usuarios y grupos que tienen permiso de envío de ítems nuevos a esta colección. ● Editores Revisores Etapa Aceptar/Rechazar Las personas responsables de este paso podrán aceptar o rechazar envíos pendientes. Sin embargo, no podrán editar los metadatos del envío. ● Revisores/Editores Etapa Aceptar/Rechazar/Editar Las personas responsables de este paso podrán editar los metadatos de los envíos pendientes y aceptar o rechazar los envíos. ● Etapa Editores2 editar metadatos Las personas responsables de este paso podrán editar los metadatos de los envíos pendientes pero no podrán rechazar los envíos. Ejemplo de Workflow: https://wiki.duraspace.org/display/DSDOC6x/Configurable+Workflow Proceso de envío (Workflows) Proceso de envío (Workflows) Workflow avanzado ● Los flujos de trabajo configurables son una función opcional que puede habilitarse para su uso solo dentro de DSpace XMLUI. ● El objetivo principal del marco de trabajo es crear una solución más flexible para que el administrador configure, e incluso permitir que un desarrollador de aplicaciones implemente pasos personalizados, que pueden configurarse en el flujo de trabajo para la colección a través de un archivo de configuración simple. [dspace-source] / config / modules / workflow.cfg Proceso de envío Mediante formulario http://localhost:8081/submissions Proceso de envío El proceso de envío de DSpace consiste en una serie de "pasos", donde cada "paso" corresponde a una o más páginas de UI. De forma predeterminada, el proceso de envío de DSpace incluye los siguientes pasos, en este orden: ● Paso "Seleccionar colección" ● Paso "Describir" ● Paso de "carga" ● Paso de "revisión" ● Paso de "licencia" ● Paso "Completar" Para modificar o reorganizar estos pasos de envío, simplemente modifique el archivo [dspace-source] / dspace / config / item-submission.xml https://wiki.duraspace.org/display/DSDOC6x/Submission+User+Interface Proceso de envío Dentro de una definición específica de encontraremos cada “paso”, estos pueden ser omitidos o bien reordenados según la definición en el fichero. .... submit.progressbar.license org.dspace.submit.step.LicenseStep org.dspace.app.webui.submit.step.JSPLicenseStep org.dspace.app.xmlui.aspect.submission.submit.LicenseStep false ...[otros pasos]... Esta implementación permite crear pasos personalizados si el repositorio lo requiriera. https://wiki.duraspace.org/display/DSDOC6x/Submission+User+Interface Proceso de envío Envío masivo SAFBuilder CSV https://github.com/DSpace-Labs/SAFBuilder https://wiki.duraspace.org/display/DSPACE/Simple+Archive+Format+Packager Formularios / Vocabularios controlados Formularios Configuración del tipo de entradas en el formulario [dspace-source] / dspace / config / input-forms.xml SCHEMA ELEMENT [QUALIFIER] FIELD_TYPE HINT REQUIRED MESSAGE [(workflow|submit)] CSV_DC_TYPE_VALUES [] ● El elemento contiene la sugerencia textual mostrada al remitente sobre por qué se requiere el campo. Eliminar la etiqueta convierte el campo en opcional. ● El elemento es opcional. Permite especificar el vocabulario controlado donde seleccionar valores. Este campo también tiene un atributo cerrado opcional. Si se cierra a verdadero, un usuario solo puede seleccionar valores del vocabulario controlado. srsc Formularios / Vocabularios controlados ● onebox: caja de texto simple. ● twobox: un par de onebox de texto simples, utilizados para valores repetibles. En XMLUI este formato se renderiza igual que el onebox. ● textarea: bloque de texto largo que se puede ingresar en varias líneas. ● name - Nombre personal, con campos separados para el apellido y el nombre. Cuando se guardan, se anexan en el formato 'Apellido, Nombre'. Formularios / Vocabularios controlados ● date - Fecha del calendario. Cuando sea necesario, exige que se ingrese al menos el año. ● list - Elija valores de una casilla de verificación o lista de botones de opción. Si el atributo repetible se establece en verdadero, se muestra una lista de casillas de verificación. Si el atributo repetible se establece en falso, se muestra una lista de botones de radio. No repetible Repetible Formularios / Vocabularios controlados ● series - Serie / nombre y número de informe. Se proporcionan campos separados para el nombre de la serie y el número de serie, pero se anexan (con un punto y coma entre) cuando se guardan. ● dropdown - Elija valores de una lista de menú "desplegable". Requiere de la especificación de value-pairs-name. ● qualdrop_value - Ingrese un "valor calificado", que incluye tanto un calificador de un menú desplegable como un valor de texto libre. Requiere de la especificación de value-pairs-name. Formularios / Vocabularios controlados Vocabularios Controlados Durante el proceso de publicación es posible limitar la captura de ciertos metadatos. Esta funcionalidad es importante ya que acota la ambigüedad en un sistema de descripción libre Ficheros: [dspace-source] / dspace / config / controlled-vocabularies / [dspace-source] / dspace / config / dspace.cfg [dspace-source] / dspace / config / input-forms.xml Formularios / Vocabularios controlados Vocabularios Controlados Pasos: 1- Comprobar que el módulo de vocabularios controlados esté activo (true) dentro del fichero [dspace-source] / dspace / config / dspace.cfg webui.controlledvocabulary.enable = true 2- Construir el vocabulario, utilizando una estructura basada en nodos, tal que: ... ... 3- Introducir dentro del campo la referencia a nuestro vocabulario creado nombre_fichero_sin_extensión Discovery, Search, y Browse El módulo Discovery permite la búsqueda y búsqueda con facetas en el repositorio. Desde la versión 6.0, Discovery es la única infraestructura lista para realizar búsquedas en DSpace. Sidebar Facet ● La búsqueda facetada divide los resultados de búsqueda en múltiples categorías, mostrando recuentos permitiendo restringir los resultados de búsqueda en esas facetas. Facetas por defecto Autor (dc.creator, dc.contributor.author) Materia (dc.subject.*) Fecha (dc.date.issued) ContentInOriginalBundle https://wiki.duraspace.org/display/DSDOC6x/Discovery Discovery, Search, y Browse Filtros de búsqueda (Search Filters) ● En una operación de búsqueda estándar, un usuario especifica su consulta completa antes de iniciar la operación. Si los resultados no son satisfactorios, el usuario comienza de nuevo con una consulta (ligeramente) alterada. Filtros de búsqueda por defecto Autor (dc.creator, dc.contributor.author) Materia (dc.subject.*) Fecha (dc.date.issued) ContentInOriginalBundle FileNameInOriginalBundle FileDescriptionInOriginalBundle https://wiki.duraspace.org/display/DSDOC6x/Discovery Discovery, Search, y Browse Añadiendo Sidebar Facets y Filtros personalizados ● Objectivo: Añadir nuevo Filtro y Faceta Type (dc.type) Para añadir o modificar las Facetas, debemos modificar el siguiente fichero: [dspace-source] / dspace / config / spring / api / discovery.xml 1- Buscamos los nodos property name "sidebarFacets" y “searchFilters” en los bean id="defaultConfiguration" y “homepageConfiguration” y añadimos una nueva referencia al bean searchFilterType ... .... ... https://wiki.duraspace.org/display/DSDOC6x/Discovery Discovery, Search, y Browse 2- Añadimos la definición del bean searchFilterType dc.type 3- Actualizamos ficheros de configuración de los binarios de DSpace 4- Reindexamos el contenido del repositorio. $ /proyectos/dspace/bin/dspace index-discovery -b https://wiki.duraspace.org/display/DSDOC6x/Discovery Discovery, Search, y Browse Browse ● Navegación (browse) por sus contenidos, los usuarios revisan un índice p.ej. de títulos para ver si encuentran contenidos de su interés. Campos de búsqueda por defecto Por fecha de publicación Autores Títulos Materias Discovery, Search, y Browse Añadiendo índices de búsqueda personalizados ● Objectivo: Añadir nuevo índice Type (dc.type) Para añadir o modificar los índices por defecto, debemos modificar el siguiente fichero: [dspace-source] / dspace / config / dspace.cfg 1- Buscamos y añadimos el nuevo índice como un nuevo elemento del webui.browse webui.browse.index.1 = dateissued:item:dateissued webui.browse.index.2 = author:metadata:dc.contributor.*\,dc.creator:text webui.browse.index.3 = title:item:title webui.browse.index.4 = subject:metadata:dc.subject.*:text webui.browse.index.5 = subject:metadata:dc.type:text Notación: webui.browse.index. = : item : : (asc | desc) webui.browse.index. = : metadata : .[.|.*] : (date | title | text) : (asc | desc) : https://wiki.duraspace.org/display/DSDOC6x/Discovery Discovery, Search, y Browse 2- Actualizamos ficheros de configuración de los binarios de DSpace 3- Reindexamos el contenido del repositorio. $ /proyectos/dspace/bin/dspace index-discovery -b https://wiki.duraspace.org/display/DSDOC6x/Discovery Configuración de un OAI crosswalk personalizado Interfaz OAI Configuración de un OAI crosswalk personalizado Interfaz OAI Configuración de un OAI crosswalk personalizado Lista de Formatos disponibles oaidc http://www.openarchives.org/OAI/2.0/oai_dc.xsd mets http://www.loc.gov/standards/mets/mets.xsd xoai http://www.lyncode.com/schemas/xoai.xsd didl http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-21_schema_file s/did/didl.xsd dim http://www.dspace.org/schema/dim.xsd ore http://tweety.lanl.gov/public/schemas/2008-06/atom-tron.sch rdf http://www.openarchives.org/OAI/2.0/rdf.xsd etdms http://www.ndltd.org/standards/metadata/etdms/1.0/etdms.xsd mods http://www.loc.gov/standards/mods/v3/mods-3-1.xsd qdc http://dublincore.org/schemas/xmls/qdc/2006/01/06/dcterms.xsd marc http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd uketd_dc http://naca.central.cranfield.ac.uk/ethos-oai/2.0/uketd_dc.xsd Configuración de un OAI crosswalk personalizado Añadiendo un OAI crosswalk personalizado ● Objectivo: Añadir nuevo OAI crosswalk lido Para añadir o modificar los OAI crosswalks por defecto, debemos modificar el siguiente fichero: [dspace-source] / dspace / config / crosswalks / oai / xoai.xml 1- Buscamos y añadimos la nueva referencia al OAI crosswalk lido dentro del contexto default ... This is the default context of the DSpace OAI-PMH data provider. Configuración de un OAI crosswalk personalizado 2- Añadimos la definición del Formato lido metadataFormats/lido.xsl http://www.lido-schema.org http://www.lido-schema.org/schema/v1.0/lido-v1.0.xsd 3- Añadimos nuestro fichero xsl con las correspondientes transformaciones del esquema XOAI $ cp /proyectos/materiales/OAICroswalks/lido.xsl /proyectos/src/DSpace/dspace/config/crosswalks/oai/metadataFormats/ 4- Reindexamos los índices OAI. $ /proyectos/dspace/bin/dspace oai import $ /proyectos/dspace/bin/dspace oai clean-cache 5- Reiniciamos el servicio de tomcat. Estadísticas ● Estadísticas SOLR ○ Estadísticas de uso ○ Estadísticas de búsquedas ○ Estadísticas del flujo de trabajo ● Estadísticas DSpace Google Analytics https://wiki.duraspace.org/display/DSDOC6x/Statistics+and+Metrics Estadísticas Estadísticas de uso https://wiki.duraspace.org/display/DSDOC6x/Statistics+and+Metrics Estadísticas Estadísticas de uso (Ítem) https://wiki.duraspace.org/display/DSDOC6x/Statistics+and+Metrics Estadísticas Estadísticas de búsquedas https://wiki.duraspace.org/display/DSDOC6x/Statistics+and+Metrics Estadísticas Estadísticas de flujo de trabajo https://wiki.duraspace.org/display/DSDOC6x/Statistics+and+Metrics Estadísticas Estadísticas DSpace Google Analytics ● Registra el tráfico de los usuarios así como las visitas y descargas de documentos en nuestro DSpace. ● A partir de la versión 6.0 no solo se registran los datos provenientes del uso de la Interfaz gráfica de DSpace sinó que también registra descargas directas mediante el uso de búsquedas a través de Google. https://wiki.duraspace.org/display/DSDOC5x/DSpace+Google+Analytics+Statistics Estadísticas Estadísticas DSpace Google Analytics Para activar el seguimiento debemos introducir un identificador válido de seguimiento dentro del fichero de configuración dspace.cfg [dspace-source] / dspace / config / dspace.cfg google.analytics.key=UA-XXXXXX-X A partir de la versión 5.0 es posible también visualizar los datos capturados por Google Analytics dentro de la interfaz de DSpace, mediante la utilización de la API de Google y una vista preparada para tal propósito. https://wiki.duraspace.org/display/DSDOC5x/DSpace+Google+Analytics+Statistics Estadísticas Estadísticas DSpace Google Analytics https://wiki.duraspace.org/display/DSDOC5x/DSpace+Google+Analytics+Statistics Personalización de nuestro DSpace Conceptos de personalización: XSLT XSLT (Extensible Stylesheet Language Transformations) es un estandar del W3C Conceptos de personalización: Manakin Conceptos de personalización: Manakin Conceptos de personalización: Manakin Conceptos de personalización: Manakin Conceptos de personalización: Manakin buildHeader dri:trail dri:body dri:options buildFooter Conceptos de personalización: Manakin http://localhost:8081?XML Conceptos de personalización: Manakin http://localhost:8081?XML Recomendación + Chrome Extensión XML TREE Conceptos de personalización: Manakin XMLUI, Mirage XMLUI, Mirage2 Personalización de cabecera / pie de página Creación de un tema partiendo del tema responsive Mirage2 (UCSP) Pasos: 1- Creamos la estructura de directorios para el nuevo tema $ cd /proyectos/src/Dspace/dspace/modules/xmlui-mirage2/src/main/webapp/themes/ $ mkdir UCSP/ $ mkdir UCSP/lib $ mkdir UCSP/lib/css $ mkdir UCSP/lib/js $ mkdir UCSP/styles $ mkdir UCSP/xsl $ mkdir UCSP/xsl/core $ mkdir UCSP/images Personalización de cabecera/pie de página 2- Copiamos los recursos a utilizar (logotipos) $ cp /proyectos/materiales/ThemeUCSP/images/* dspace/modules/xmlui-mirage2/src/main/webapp/themes/UCSP/images/ 3- Copiamos la base del tema original y ficheros encargados del procesado de las reglas para la renderización de la cabecera y el pie de página $ cp /proyectos/src/Dspace/dspace-xmlui-mirage2/src/main/webapp/xsl/theme.xsl dspace/modules/xmlui-mirage2/src/main/webapp/themes/UCSP/xsl/ cp /proyectos/src/DSpace/dspace-xmlui-mirage2/src/main/webapp/xsl/core/page-structure.x sl dspace/modules/xmlui-mirage2/src/main/webapp/themes/UCSP/xsl/core/ 4- Creamos el fichero _styles.scss para la personalización de estilos $ vim /proyectos/src/Dspace/dspace/modules/xmlui-mirage2/src/main/webapp/themes/UCSP/style s/_styles.scss Personalización de cabecera/pie de página 5- Copiamos fichero con las variables globales de Bootstrap para proceder a su personalización $ mkdir dspace/modules/xmlui-mirage2/src/main/webapp/themes/UCSP/styles/classic_mirage_color _scheme $ cp /proyectos/src/DSpace/dspace-xmlui-mirage2/src/main/webapp/styles/classic_mirage_col or_scheme/_bootstrap_variables.scss dspace/modules/xmlui-mirage2/src/main/webapp/themes/UCSP/styles/ 6- Editamos los valores de las variables globales de Bootstrap [dspace-source] / dspace / modules / xmlui-mirage2 / src / main / webapp / themes / UCSP / styles / classic_mirage_color_scheme / _bootstrap_variables.scss //Color links y fondo botones $brand-primary: #607890 !default; //Color àrea barra superior $navbar-inverse-bg: #FFF !default; //Color enlaces barra superior (idioma/conexión) $navbar-inverse-link-color: #eee !default; Personalización de cabecera/pie de página 7- Localizamos y editamos la sección encargada de renderizar la cabecera 8- Localizamos y editamos la sección encargada de renderizar el pie de página Personalización de la vista del Ítem Pasos: 1- Copiamos la base del tema original y ficheros encargados del procesado de las reglas para la renderización de la vista del ítem $ mkdir -p /proyectos/src/DSpace/dspace/modules/xmlui-mirage2/src/main/webapp/themes/UCSP/xsl/a spect/artifactbrowser/ $ cp /proyectos/src/DSpace/dspace-xmlui-mirage2/src/main/webapp/xsl/aspect/artifactbrowse r/item-view.xsl /proyectos/src/Dspace/dspace/modules/xmlui-mirage2/src/main/webapp/themes/UCSP/xsl/a spect/artifactbrowser/ 2- Buscamos y editamos la sección encargada de renderizar los metadatos mostrados en la página Personalización de la vista del Ítem 3- Establecemos nuestro tema como tema principal [dspace-source] / dspace / config / xmlui.xconf 4- Buscamos y editamos la sección encargada de establecer el tema por defecto Notación del fichero xmlui.xconf regex=".*" Tema base para todo el repositorio handle="123456789/1" Tema base para una comunidad o colección regex="community-list" Tema específico para una página Personalización de la vista del Ítem Para pruebas rápidas podemos editar directamente los xsl ubicados en los binarios del repositorio / proyectos / dspace / webapps / xmlui / themes / / xsl / Personalización de la vista del Ítem Algunos ejemplos de personalización de la vista del Ítem Visualizadores de los diferentes tipos de documentos ● Visor de documentos (FlowPaper) https://flowpaper.com/ Visualizadores de los diferentes tipos de documentos ● Visor de Imágenes (OpenSeadragon) https://openseadragon.github.io/ Visualizadores de los diferentes tipos de documentos ● Visor de Vídeos https://www.jwplayer.com/ Visualizadores de los diferentes tipos de documentos ● Visor de Panorámicas (Imágenes 360º) https://krpano.com/ Visualizadores de los diferentes tipos de documentos ● Visor de GigaImágenes http://www.zoomify.com/ Personalización ● Personalización UCSP http://www.zoomify.com/ Personalización ● Personalización UCSP Mantenimiento de DSpace Calendario de releases de DSpace 1.5.0 1.7.0 3.0 5.0 Mar 2008 Dec 2010 Nov 2012 Jan 2015 7.0 1.5.2 1.7.3 3.6 5.9 2018 Apr 2009 Jul 2013 Mar 2016 Jun 2018 END OF LIFE / UNSUPPORTED 2006 2008 2010 2010 2011 2012 2013 2015 2016 20018 1.4.0 1.6.0 1.8.0 4.0 6.0 July 2006 Mar 2010 Nov 2011 Dec 2013 Oct 2016 1.4.2 1.6.2 1.8.3 4.9 6.3 May 2007 Jun 2010 Jul 2013 Jun 2018 Jun 2018 Estrategias para migrar versiones Estrategias para migrar Estrategias para backups Preservación a largo plazo La infraestructura debe garantizar el acceso a datos a largo plazo, sin fallas. Para tener éxito, debe tenerse en cuenta: ● Replicación (más de una copia) ● Actualización de medios ● Migración de formato ● Integridad de datos (checksums) ● Plan de contingencia y recuperación ● Plan de preservación joan.caparros@csuc.cat https://es.linkedin.com/in/joancaparros ¡Muchas gracias!