rguezque / ark-generator
Sencillo generador de identificadores ARK
Requires
None
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Un sencillo generador de identificadores ARK (Archival Resource Key). También puede utilizarse para generar identificadores DOI, URN o Handle.
Generar un identificador ARK
Para empezar crea una instancia de la clase Generator la cual recibe dos argumentos:
- El número NAAN. Un identificador único asignado por ARK Alliance.
- El esquema del identificador. En este caso por default es
ark; sin embargo tambien puede especificarse comodoi,urnohdl(Handle)
Después ejecuta el método ArkGenerator::generate el cual recibe dos argumentos:
- Un shoulder. Es un string que sirve a su vez como cabecera del prefijo a generar. El usuario lo define.
- Una máscara. Es una cadena betanumérica que le dice al generador como formar el blade (Que se agrega al final del shoulder).
Juntos forman el sufijo del ark.
// index.php declare(strict_types = 1); use rguezque\ArkGenerator\ArkGenerator; require __DIR__.'/vendor/autoload.php'; $gen = new ArkGenerator('68066'); $result = $gen->generate('p3 ', 'cbbbddck'); echo print_r($result, true);
Ejecuta desde la terminal:
php ./index.php
Esto devolvera un array con los datos resultantes, en una estructura como la siguiente:
[
'scheme' => 'ark',
'prefix' => '68066',
'bow' => 'ark:68066',
'shoulder' => 'p3',
'blade' => 'f8j491xk',
'suffix' => 'p3f8j491xk',
'identifier' => '68066/p3f8j491xk',
'full_scheme' => 'ark:68066/p3f8j491xk',
'created_at' => '1763060594'
];
Si se prefiere definir un blade explicitamente por el usuario, utiliza el método ArkGenerator::setBlade antes de invocar ArkGenerator::generate. Restablece el blade a null con ArkGenerator::resetShoulderPrefix.
Note
Evita utilizar el NAAN 99999, y el shoulder fk, ya que son considerados por lo regular como identificadores de prueba.
Si el shoulder contiene guiones (-) estos serán ignorados. Ej. x3-k se convertirá a x3k.
Por convención de ARK, todo se generará en minúsculas.
Acerca de la mascara para generar los sufijos
Al momento de generar un sufijo, el método ArkGenerator::generate necesita un string que sirve como una mascara que permite definir como se formara el sufijo del ARK; a continuación el significado de cada caracter o flag que puede formar una mascara:
d: Genera un número entero entre el0y el9.c: Genera una letra del alfabeto consonántico omitiendo la letral(ele) para evitar confusiones con el número1(bcdfghjkmnpqrstvwxyz).b: Genera un caracter betanúmerico (bcdfghjkmnpqrstvwxz0123456789).s: Genera un caracter especial (=~*+@_$). Se omite:y/porque están reservados por el resolutor (resolver).
Las flags con case-sensitive y cualquier otra letra que no sea una flag, se asignará directamente al prefijo resultante en el orden en que haya sido definida.
Documentación adicional
Sobre el esquema del identificador ARK
- Sitio oficial
- Recursos relacionados a ARK
- Consulta The ARK Identifier Scheme Specifications o bien el archivo de texto
draft-kunze-ark-42.txtubicado en/docs/. - General Identifier Concepts and Conventions