rguezque / ark-generator
Sencillo generador de identificadores ARK
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/rguezque/ark-generator
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