Skip to main content
ExLibris
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    Configurar reglas de normalización para recursos externos (Primo VE)

    Última actualización: 31 de diciembre de 2021

    Volver al menú

    Las reglas de normalización definen transformaciones que se aplican a registros de fuentes externas (DC o XML genérico) para crear los registros de Dublin Core expandidos de Primo VE para el descubrimiento. Se pueden crear las propias reglas de normalización y aplicarlas a los registros cargados externamente.

    Certificación de administración de Primo VE > 06 Recursos externos: Carga de datos (15 minutos)

    Para obtener información sobre cómo crear reglas de normalización para registros Marc21 desde fuentes externas, véase Trabajar con reglas de normalización.

    Usar el esquema DC expandido

    El esquema expandido Dublin Core de Primo VE incluye campos de descubrimiento adicionales que se pueden rellenar según sea necesario usando reglas de normalización. Los siguientes campos son compatibles con el esquema DC expandido:

    • discovery.resourceType – Estos campos mantienen los tipos de recursos que se muestran en Primo, que pueden ser diferentes a los valores en los campos dc:type y dcterms:type que se cargan desde los registros externos. Para más información, véase Mapear tipos de recursos desde fuentes de datos externas.

    • discovery.local1 hasta discovery.local50 – Estos campos contienen información adicional que puede usar para mostrar información adicional de la fuente y como índice de búsqueda. Para más información, véase Mapear a campos de descubrimiento locales.

    Mapear Tipos de recurso desde fuentes de datos externas

    Debido a que los valores de los tipos de recursos Dublin Core pueden ser cualquiera y pueden no coincidir con los códigos admitidos que se usan en Primo VE, es posible que sea necesario mapear el tipo de recurso desde el campo dc:type o dcterms:type del registro fuente para un código de tipo de recurso admitido en Primo VE (véase Tipos de recurso admitidos en Primo VE) o para un tipo de recurso local definido en Primo VE (véase Configurar tipos de recursos para Primo VE).

    Se puede usar cualquiera de los siguientes métodos para mapear los tipos de recursos a Primo VE:

    • Crear reglas de normalización que sustituyen el valor del campo dc:type o dcterms:type correspondiente.

    • Crear reglas de normalización que mapean un valor de tipo de recurso al campo discovery:resourceType y dejan el campo DC original tal como está.

    • Añadir mapeos de tipos de recursos a la tabla de mapeo Mapear tipo Dublin Core a tipo Descubrimiento. Para más información, véase Usar la tabla de mapeo para mapear tipos de recursos.

    Primo VE determina el tipo de recurso de un registro en base a la existencia de los siguientes campos en orden:

    1. discovery:resourceType field

    2. dcterms:type field

    3. dc:type field

    Si el procesamiento continúa a los ejemplares 2 y 3, el sistema compara el valor de un ejemplar con los mapeos en la tabla de mapeo Mapear tipo Dublin Core a tipo Descubrimiento. Si se encuentra una coincidencia, el valor coincidente en la tabla de mapeo se usa y se guarda en el campo discovery:resourceType. Si no se encuentra ninguna coincidencia y la tabla de mapeo tiene un valor por defecto, se usa el valor por defecto. En caso contrario, el sistema usa el valor del campo DC tal cual.

    Ejemplos

    Para más información sobre crear reglas de normalización, véase Crear reglas de normalización.

    El siguiente ejemplo mapea el tipo de recurso de Procedimientos en dc:type a un código admitido en Primo VE.

    Se pueden mapear distintos tipos de recursos en la fuente (tales como Póster y Fotografía) al mismo tipo de recurso (tal como imagen) en Primo VE.


    rule "from dc:type A to discovery:type B"

    when

    "dc"."type" equals "Proceedings"

    then

    set "conference_proceedings" in "discovery"."resourceType"

    end


    El siguiente ejemplo mapea el tipo de recurso LibGuides en dcterms:type a un nuevo tipo de recurso local que tiene que definirse en Primo VE.

    Si el tipo de recurso local se ha definido como LibGuides en Primo VE, la siguiente regla de normalización no sería necesaria, y el sistema simplemente usaría el tipo de recurso que fue mapeado a dcterms:type en Primo VE.


    rule "from dcterms:type A to discovery:type B"

    when

    "dcterms"."type" equals "LibGuides"

    then

    set "library_guides" in "discovery"."resourceType"

    end


    Tipos de recursos admitidos en Primo VE

    La tabla a continuación enumera los códigos de tipos de recursos admitidos por Primo VE. Se deben mapear los valores de su fuente a uno de los códigos admitidos o a un tipo de recurso local (si es necesario). Para más información sobre cómo modificar tipos de recursos de sistema, véase Configurar tipos de recursos para Primo VE.

    Tipos de recursos admitidos en Primo VE

    Código de tipo de recurso

    Mostrar nombre

    bases de datos

    Base de datos

    audios

    Audio

    periódicos

    Periódico

    manuscritos

    Manuscrito

    conferencia_procedimientos

    Procedimiento de la conferencia

    disertaciones

    Disertación

    kits

    Kit

    otro

    Otro

    materiales_de archivo

    Material de archivo

    realia

    Realia

    libros

    Libro

    libro_capítulos

    Capítulo Libro

    colecciones

    Colección

    documentos_legales

    Documento legal

    patentes

    Patente

    referencia_entradas

    Entrada de referencia

    investigación_conjuntos de datos

    Conjunto de datos de investigación

    reseñas

    Reseña

    conjuntos_datos_estadísticos

    Conjunto de datos estadísticos

    informes_técnicos

    Informe técnico

    revistas

    Revista

    periódico_artículos

    Artículos de periódico

    artículos

    Artículo

    texto_recursos

    Recurso de texto

    documentos_oficiales

    Documento oficial

    imágenes

    Imagen

    mapas

    Mapa

    vídeos

    Vídeo

    puntuaciones

    Puntuación

    sitios web

    Sitio web

    Mapear a campos de descubrimiento locales

    El esquema expandido de Dublin Core para Primo VE le permite mapear información a los siguientes campos, que se rellenan durante la carga de registros: discovery.local1 - discovery.local50. Después que se cargan los registros, Primo VE puede usar los campos locales para mostrar información adicional en los despliegues breves y completos de un registro, y también los puede usar como campos de búsqueda. Los campos locales son particularmente útiles para mapear campos DC no estándares que no se cargan por defecto durante la importación a Primo VE.

    Cuando se use un campo de descubrimiento local, también se debe configurar su campo de despliegue local con un nombre similar. Por ejemplo, si se ha creado una regla de normalización para discovery.local2, también se debe definir el campo de despliegue local Local_field_02, y asegurarse de que se selecciona la casilla de verificación Usar el campo local paralelo 01/50 desde el registro Dublin Core. Para más información, véase Configurar despliegue local y campos de búsqueda para Primo VE.

    Ejemplos

    Para más información sobre crear reglas de normalización, véase Crear reglas de normalización.

    El siguiente ejemplo mapea el valor en dc:relation al campo local 1 en Primo VE.


    rule "move relation to local field 1"

    when

    exist "dc"."relation"

    then

    move "dc"."relation" to "discovery"."local1"

    end


    El siguiente ejemplo define el valor del campo local 2 a Investigación interna por cada registro procesado.


    rule "set local field 2 for internal research"

    when

    True

    then

    set "Internal Research" in "discovery"."local2"

    end


    Crear reglas de normalización

    El Editor MD le permite crear reglas de normalización, que se usan para personalizar la transformación de registros externos (ya sea Dublic Core o XML genérico) al formato Dublin Core extendido de Primo VE para el descubrimiento. Para fuentes externas que utilicen el formato MARC21, Primo VE asigna estos registros al formato Alma-MARC21 para el descubrimiento. Una vez creadas las reglas, se pueden añadir según sea necesario a los procesos de reglas de normalización, que pueden asignarse posteriormente a perfiles de importación. Para más información, véase Crear un proceso de regla de normalización.

    Para añadir un fichero de reglas de normalización para fuentes externas:
    1. Abrir el Editor MD (Menú de Configuración > Descubrimiento > Cargar fuentes de datos externas > Reglas de normalización para fuentes de datos externas).

    2. Seleccione la pestaña Reglas > Reglas de normalización (Descubrimiento) y compruebe las reglas existentes para ver si una regla existente se puede modificar o usar como base para su nueva regla.

      PVE_MD_Editor_NR_ExtDataSrc_newMDE.png

      Pestaña Reglas
    3. Cree una nueva regla al seleccionar Fichero > Nuevo > Normalización (Descubrimiento) para reglas DC/XML o Fichero > Nuevo > Normalización para reglas MARC21, lo cual depende del formato de los ficheros de importación de Descubrimiento que esté recibiendo de la fuente externa.

      PVE_NewDCRule2.png

      Configurar las propiedades del fichero de reglas de normalización
    4. Especificar las siguientes propiedades y después clicar en Guardar:

      • Nombre: especifique un nombre identificable para el fichero de reglas, que puede contener tipos de reglas relacionadas.

        Este campo no puede contener comillas sencillas ni dobles: “, ”, ", ‘, ’, y '.

      • Descripción: introduzca texto para describir el contenido de su fichero de reglas.

      • Tipo - Seleccione DC, XML o Drool (reglas de normalización MARC21 únicamente).

      • Nivel de acceso: Seleccione una de las siguientes ubicaciones de subcarpetas: Privado (solo para su uso y no se puede incluir en un proceso de normalización) o Compartido (fichero de reglas público).

    5. Añadir sus reglas al panel del editor. Para obtener más información, consulte Sintaxis de las reglas de normalización (DC y XML genérico) oTrabajar con reglas de normalización(MARC21).

      PVE_ME_EditRule_newMDE.png

      Panel del editor de reglas de normalización
    6. Seleccionar Vista preliminar. La regla o las reglas en el fichero se aplican a los registros especificados y se muestra el resultado.

    7. Seleccionar Guardar y probar usando registro externo debajo del panel editor.

    Sintaxis de las reglas de normalización para los formatos DC y XML

    Los ficheros de reglas contienen una o más reglas, que a su vez contienen una o más condiciones seguidas por una o más acciones.

    Para más información sobre la sintaxis de las reglas de normalización para fuentes MARC21 externas, vea Sintaxis de las reglas de normalización, la cual es diferente de la sintaxis usada para definir las reglas de normalización para el despliegue MARC y los campos locales que son mapeados desde registros bibliográficos gestionados por Alma.

    La sintaxis siguiente se usa para cada regla en el fichero:


    rule "<rule name>"
    when
    <condition 1>
    <condition 2>
    ...
    then
    <action 1>
    <action 2> [if <condition>]
    ...
    end

    Condiciones

    Una regla puede contener una o más condiciones que se aplican a campos y valores específicos en el registro fuente. Si se cumplen todas las condiciones, la regla se aplica al registro. En caso contrario, la regla no se aplica y el registro se deja sin cambios. Cada condición debe incluir una de las siguientes palabras clave:

    • verdadero – Aplica incondicionalmente la regla a todos los registros.

    • existe – Aplica la regla cuando existe un campo específico.

    • no existe: se aplica la regla cuando no existe un campo específico.

    • es igual a – Aplica la regla cuando concuerda el contenido completo del campo específicado.

    • no es igual – Aplica la regla cuando no concuerda el contenido completo del campo especificado.

    La siguiente tabla ofrece un ejemplo para cada tipo de condición.

    Condiciones DC y XML
    Sintaxis Ejemplo
    Condiciones generales:

    true

    true

    Condiciones DC:

    exist "{namespace}"."{field}

    exist "dc"."description"

    exist "{namespace}"."{field}"\("{xsiType}"\)

    exist "dc"."identifier"("dcterms:ISBN")

    "{namespace}"."{field}" equals "{value}"

    "dc"."identifier" equals "sport"

    "{namespace}"."{field}"\("{xsiType}"\) equals "{value}"

    "dc"."identifier"("dcterms:ISBN") equals "sport"

    "{namespace}"."{field}" not equals "{value}"

    "dc"."identifier" not equals "sport"

    "{namespace}"."{field}"\("{xsiType}"\) not equals "{value}"

    "dc"."identifier"("dcterms:ISBN") not equals "sport"

    Condiciones XML:

    "xpathExpression" equals "value"

    "ino:object/viaRecord/recordId"  equals "test"

    "xpathExpression" not equals "value"

    "ino:object/viaRecord/recordId"  not equals "test"

    exist "xpathExpression"

    exist "ino:object/viaRecord/recordId"

    not exist "xpathExpression"

    not exist "ino:object/viaRecord/recordId"

    Acciones

    Se pueden aplicar acciones a campos únicos en base a las condiciones especificadas en la regla. Si se cumplen todas las condiciones, las acciones se aplican al registro en el orden en que aparecen en la lista. Cada acción debe incluir una de las siguientes palabras clave:

    • copiar – Copia el valor de un campo a otro campo.

    • mover – Mueve el valor de un campo a otro campo.

    • eliminar – Elimina el valor de un campo.

    • definir – Define el valor de un campo directamente.

    En algunos casos, se puede añadir la condición si es igual a <value> a las acciones anteriores para aplicar cambios de reglas solo en valores coincidentes específicos.

    La siguiente tabla ofrece un ejemplo para cada tipo de acción.

    • Los valores de cadena (tales como los especificados para el título de la regla y y la transformación añadir prefijo) no pueden contener el separador de subcampo $$.

    Acciones DC y XML
    Sintaxis Ejemplo
    Acciones DC:

    copy "{namespace}"."{field}"({"xsiType"}) to "{newTagNameSpace}"."{newTagField}"({"newXsiType"})

    copy "dc"."identifier"("dcterms:ISBN") to "dc"."title"("dcterms:ISBN")

    copy "{namespace}"."{field}"({"xsiType"}) to "{newTagNameSpace}"."{newTagField}"

    copy "dc"."identifier"("dcterms:ISBN") to "dc"."title"

    copy "{namespace}"."{field}" to "{newTagNameSpace}"."{newTagField}"({"newXsiType"})

    copy "dc"."identifier" to "dc"."title"("dcterms:ISBN")

    copy "{namespace}"."{field}" to "{newTagNameSpace}"."{newTagField}"

    copy "dc"."identifier" to "dc"."title"

    copy "{namespace}"."{field}"({"xsiType"}) if equals "{value}" to "{newTagNameSpace}"."{newTagField}"({"newXsiType"})

    copy "dc"."identifier"("dcterms:ISBN") if equals "sport" to "dc"."title"("dcterms:ISBN")

    copy "{namespace}"."{field}"({"xsiType"}) if equals "{value}" to "{newTagNameSpace}"."{newTagField}"

    copy "dc"."identifier"("dcterms:ISBN") if equals "sport" to "dc"."title"

    copy "{namespace}"."{field}" if equals "{value}" to "{newTagNameSpace}"."{newTagField}"({"newXsiType"})

    copy "dc"."identifier" if equals "sport" to "dc"."title"("dcterms:ISBN")

    copy "{namespace}"."{field}" if equals "{value}" to "{newTagNameSpace}"."{newTagField}"

    copy "dc"."identifier" ") if equals "sport" to "dc"."title"

    move "{namespace}"."{field}"({"xsiType"}) to "{newTagNameSpace}"."{newTagField}"({"newXsiType"})

    move "dc"."identifier"("dcterms:ISBN") to "dc"."title"("dcterms:ISBN")

    move "{namespace}"."{field}"({"xsiType"}) to "{newTagNameSpace}"."{newTagField}"

    move "dc"."identifier"("dcterms:ISBN") to "dc"."title"

    move "{namespace}"."{field}"  to "{newTagNameSpace}"."{newTagField}"({"newXsiType"})

    move "dc"."identifier" to "dc"."title"("dcterms:ISBN")

    move "{namespace}"."{field}"  to "{newTagNameSpace}"."{newTagField}"

    move "dc"."identifier" to "dc"."title"

    move "{namespace}"."{field}"({"xsiType"}) to "{newTagNameSpace}"."{newTagField}"({"newXsiType"})

    move "dc"."identifier"("dcterms:ISBN") if equals "sport" to "dc"."title"("dcterms:ISBN")

    move "{namespace}"."{field}"({"xsiType"}) if equals "{value}"  to "{newTagNameSpace}"."{newTagField}"

    move "dc"."identifier"("dcterms:ISBN") if equals "sport" to "dc"."title"

    move "{namespace}"."{field}" to "{newTagNameSpace}"."{newTagField}"({"newXsiType"})

    move "dc"."identifier" if equals "sport" to "dc"."title"("dcterms:ISBN")

    move "{namespace}"."{field}" if equals "{value}" to "{newTagNameSpace}"."{newTagField}"

    move "dc"."identifier" if equals "sport" to "dc"."title"

    remove "{namespace}"."{field}" if equals "{value}"

    remove "dc"."identifier" if equals "sport"

    remove "{namespace}"."{field}"({"xsiType"}) if equals "{value}"

    remove "dc"."identifier"("dcterms:ISBN") if equals "sport"

    remove "{namespace}"."{field}"({"xsiType"})

    remove "dc"."identifier"("dcterms:ISBN")

    remove "{namespace}"."{field}"

    remove "dc"."identifier"

    set "{value}" in "{namespace}"."{field}"({"xsiType"})

    set "sport" in "dc"."identifier"("dcterms:ISBN")

    set "{value}" in "{namespace}"."{field}"

    set "sport" in "dc"."identifier"

    set "{namespace}"."{field}" to TEMP"{i}"

    set "dc"."identifier" to TEMP"1"

    set "{namespace}"."{field}"("{xsiType}") to TEMP"{i}"

    set "dc"."identifier"("dcterms:ISBN") to TEMP"1"

    set TEMP"{i}" to dc value "{namespace}"."{field}"

    set TEMP"1" to dc value "dc"."identifier"

    set TEMP"{i}" to dc value "{namespace}"."{field}"("{xsiType}")

    set TEMP"1" to dc value "dc"."identifier"("dcterms:ISBN")

    Acciones XML: (Para más información, véase W3C XPATH Standard .)

    copy "concat ({xpathExpression},' ',{xpathExpression})" to "{namespace}"."{field}"

     

    • La palabra clave concat es una función XPATH que representa una de las muchas funciones XPATH que se pueden usar dentro de las acciones XML.
    • Debido a la dependencia en Java, solo admitimos funciones provistas de XPATH versión 1.0.

    copy "concat(//person[@pers_role='pau']/name/first/text(),' ',//person[@pers_role='pau']/name/last/text())" to "dc"."creator"

    copy "xpathExpression" to "newTagNameSpace"."newTagField"({"xsiType"})

    copy "ino:object/viaRecord/isbn" to "dcterms"."title"("dcterms:ISBN")

    copy "xpathExpression" to "newTagNameSpace"."newTagField"

    copy "ino:object/viaRecord/isbn" to "dcterms"."title"

    • copy all "{xpathExpression}"\("{separator}"\) to "{newTagNameSpace}"."{newTagField}"

    • copy all "{xpathExpression}"\("{separator}"\)("{newXsiType}"\) to "{newTagNameSpace}"."{newTagField}"

    La acción copy all le permite importar más de una instancia de un campo (como autor o ISSN) en función de un separador específico. Para utilizar esta acción, debe crear una regla de normalización por cada instancia del campo que desee admitir.

    El siguiente ejemplo le permite importar un máximo de tres autores por cada registro:

    rule "Rule for creator1"

         when

              exist "//*[local-name()='Item']/*[local-name()='Item']/*[local-name()='Component']/*[local-name()='Resource']/*[local-name()='mods']/*[local-name()='name' and @type='personal'][1]/child::*[local-name()='namePart']"

         then

              copy all "//*[local-name()='Item']/*[local-name()='Item']/*[local-name()='Component']/*[local-name()='Resource']/*[local-name()='mods']/*[local-name()='name' and @type='personal'][1]/child::*[local-name()='namePart']/text()"(", ") to "dc"."creator"

    end

     

    rule "Rule for creator2"

         when

              exist "//*[local-name()='Item']/*[local-name()='Item']/*[local-name()='Component']/*[local-name()='Resource']/*[local-name()='mods']/*[local-name()='name' and @type='personal'][2]/child::*[local-name()='namePart']"

         then

              copy all "//*[local-name()='Item']/*[local-name()='Item']/*[local-name()='Component']/*[local-name()='Resource']/*[local-name()='mods']/*[local-name()='name' and @type='personal'][2]/child::*[local-name()='namePart']/text()"(", ") to "dc"."creator"

    end

     

    rule "Rule for creator3"

         when

              exist "//*[local-name()='Item']/*[local-name()='Item']/*[local-name()='Component']/*[local-name()='Resource']/*[local-name()='mods']/*[local-name()='name' and @type='personal'][3]/child::*[local-name()='namePart']"

         then

              copy all "//*[local-name()='Item']/*[local-name()='Item']/*[local-name()='Component']/*[local-name()='Resource']/*[local-name()='mods']/*[local-name()='name' and @type='personal'][3]/child::*[local-name()='namePart']/text()"(", ") to "dc"."creator"

    end

    set "value" in newTagNameSpace"."newTagField"({"xsiType"})

    set "whatever" in "dcterms"."title"("dcterms:ISBN")

    set "value" in newTagNameSpace"."newTagField"

    set "whatever" in "discovery"."local1"

    set TEMP"{i}" in "{newTagNameSpace}"."{newTagField}"

    set TEMP"2" in "dcterms"."title"

    set TEMP"{i}" in "{newTagNameSpace}"."{newTagField}"("{xsiType}")

    set TEMP"1" in "dcterms"."title"("dcterms:ISBN")

    set TEMP"{i}" to xPath "{xpathExpression}"

    set TEMP"3" to xpath "//datafield[@tag='identifier']"

    Acciones de transformación: Tanto en DC como en Generic XML, se pueden usar estas operaciones para transformar datos en la variable TEMP"i".

    eliminar subsecuencia usando regex – Esta acción elimina una subsecuencia del contenido de un campo temporal al usar una expresión regular especificada. Formato válido:

    remove substring using regexp (TEMP"{i}","<Java_regex >")

    remove substring using regex (TEMP"1","(/|:|;|=|,)+$")

    concatenar con delimitador – Esta acción concatena los contenidos de dos campos temporales y los separa con un delimitador. El resultado aparece en el primer campo temporal. Formato:

    concatenate with delimiter (TEMP"{i}",TEMP"{i}","<delimiter>")

    concatenate with delimiter (TEMP"1",TEMP"2","")

    añadir prefijo – Esta acción añade el valor especificado al principio del campo temporal. Formato válido:

    añadir prefijo (TEMP"{i}","<value>")

    Para añadir el separador de subcampo $$Q al comienzo de un campo temporal:

    añadir prefijo (TEMP"2","$Q")

    añadir prefijo (TEMP"2","$")

    añadir sufijo- Esta acción añade el valor especificado al final del campo temporal. Formato válido:

    añadir sufijo (TEMP"{i}","<value>")

    Para añadir el separador de subcampo $$Q al final de un campo temporal:

    añadir sufijo (TEMP"2","$")

    añadir sufijo (TEMP"2","$Q")

    reemplazar secuencia por secuencia – Esta acción reemplaza todas las instancias de una expresión regular con un valor especificado. Formato válido:

    replace string by string (TEMP"{i}","<Java_regex>","<string>")

    replace string by string (TEMP"1","[^0-9]","\\?")

    devolver lista usando regex – Esta acción busca todas las instancias de una expresión regular en el segundo campo temporal y las copia como una lista en el primer campo temporal. Formato válido:

    return list using regex (TEMP"{i}",TEMP"{i}","<Java_regex>")

    return list using regex (TEMP"1",TEMP"2","[a-z]{3}")

    eliminar secuencia – Esta acción elimina una secuencia especificada de un campo temporal. Formato válido:

    remove string (TEMP"{i}","<value>")

    remove string (TEMP"1","<<")

    eliminar espacios iniciales y finales – Esta acción elimina los espacios iniciales y finales de un campo temporal. Formato válido:

    remove leading and trailing spaces (TEMP"{i}")

    eliminar los espacios iniciales y finales (TEMP"1")

    reemplazar espacios – Esta acción reemplaza todos los espacios en un campo temporal con un carácter especificado o una secuencia especificada. Formato válido:

    replace spaces (TEMP"{i}","<string>")

    replace spaces (TEMP"1"," ")

    minúscula – Esta acción cambia todas las letras de un campo temporal a minúscula. Formato válido:

    lower case (TEMP"{i}")

    lower case (TEMP"1")

    Ejemplos DC

     

     
    rule "add OA indication"
    when
    True
    then
    set "Unrestricted online access" in "dcterms"."accessRights"
    end

     
    rule "move description"
    when
    exist "dc"."description"
    then
    move "dc"."description" to "dcterms"."description"
    end

     
    rule "move description"
    when
    exist "dc"."identifier"("dcterms:ISBN")
    then
    move "dc"."identifier"("dcterms:ISBN") to "dcterms"."identifier"("dcterms:ISBN")
    end

     
    rule "move description"
    when
    "dc"."identifier"("dcterms:ISBN") equals "sport1111"
    then
    move "dc"."identifier"("dcterms:ISBN") to "dcterms"."identifier"("dcterms:ISBN")
    end

     
    rule "dc identifier equals sport"
    when
    "dc"."identifier"("dcterms:ISBN") not equals "sport"
    then
    move "dc"."title" to "dcterms"."description"
    end

     
    rule "from dc:type A to discovery:type C"
    when
    "dc"."type" equals "Photograph"
    then
    set "images" in "discovery"."resourceType"
    end

     
    rule "from dc:type A to discovery:type D"
    when
    "dc"."type" equals "Poster"
    then
    set "images" in "discovery"."resourceType"
    end

    Ejemplos XML

     

     
    rule "link to resource"
    when
    true
    then
    copy "//*[local-name()='dc']/*[local-name()='identifier'][starts-with(., 'https://www.e.myInst')]/." to "dc"."source"
    end

     
    rule "Copy identifier"
    when
    exist "ino:object/viaRecord/recordId"
    then
    copy "ino:object/viaRecord/recordId" to "dc"."identifier"
    end

     

    rule "copy first title"
    when
    true
    then
    copy "(//title/textElement)[1]" to "dc"."title"
    end

     

    rule "copy all titles"
    when
    true
    then
    copy "(//title/textElement)" to "dcterms"."title"
    end

     

    rule "creator"
    when
    exist "ino:object/viaRecord/work/creator/nameElement"
    then
    copy "ino:object/viaRecord/work/creator/nameElement" to "dc"."creator"
    end

     

    rule "equals english"
    when
    "ino:object/viaRecord/work/lang/textElement" equals "eng"
    then
    set "English" in "dc"."language"
    end

     

    rule "set Constant"
    when
    true
    then
    set "test subject" in "dc"."subject"
    end

    • Was this article helpful?