rguezque / ark-generator
Sencillo generador de identificadores ARK
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:api
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 prefix. Es un string que sirve a su vez como prefijo, del prefijo a generar. El usuario lo define.
- Una máscara. Es una cadena alfabética que le dice al generador como formar el shoulder suffix (Es a su vez el sufijo del prefijo a conformar).
// index.php declare(strict_types = 1); use rguezque\ArkGenerator\ArkGenerator; require __DIR__.'/vendor/autoload.php'; $gen = new ArkGenerator('68066'); $result = $gen->generate('p3 ', 'aaadaaadk'); 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',
'shoulder_prefix' => 'p3',
'shoulder_suffix' => 'it81so08k',
'suffix' => 'p3it81so08k',
'identifier' => '68066/p3it81so08k',
'identifier_length' => '17',
'full_scheme' => 'ark:68066/p3it81so08k',
'created_at' => '1763060594'
];
Si se prefiere definir un shoulder prefix explicitamente por el usuario, utiliza el método ArkGenerator::setShoulderPrefix antes de invocar ArkGenerator::generate. Restablece el shoulder prefix a null con ArkGenerator::resetShoulderPrefix.
Note
Evita utilizar el NAAN 99999, ni el shoulder prefix fk, ya que son considerados por lo regular como identificadores de prueba.
Si el shoulder prefix contiene guiones (-) estos serán ignorados. Ej. x3-k se convertirá a x3k.
Sobre 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.l: Genera una letra del alfabeto (se omite lañ) en minúsculas (a-z).u: Genera una letra del alfabeto (se omite laÑ) en mayúsculas (A-Z).a: Genera un caracter alfanúmerico (se omite la ñ) (0-9,a-z,).e: Genera un caracter alfanúmerico extendido (se omite lañy laÑ) (0-9,a-z,A-Z).s: Genera un caracter alfanúmerico extendido incluyendo algunos caracteres especiales (se omite lañy laÑ) (0-9,a-z,A-Z,=~*+@_$).
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