The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

SeeAlso::Identifier::PND - SeeAlso handling of PND Numbers (Personennormdatei)

SYNOPSIS

  my $pnd = new SeeAlso::Identifier::PND "";

  print "invalid/empty" unless $pnd; # $pnd is defined but false !

  $pnd->value( '101115658X' );
  $pnd->value; # '' or PND identifier again (101115658X)
  $pnd; # PND identifier as URI (http://d-nb.info/gnd/101115658X)

  $pnd->canonical; # http://d-nb.info/gnd/101115658X

DESCRIPTION

This module handles identification numbers of the Personennormdatei of the German National Library (DNB).

The constructor of SeeAlso::Identifier::PND always returns an defined identifier with all methods provided by SeeAlso::Identifier. As canonical form the URN representation of PND with prefix <http://d-nb.info/gnd> is used (these HTTP URIs actually resolve). As hashed and "pretty" form of an PND number, the number itself is used (including check digit).

The authority files PND, GKD and SWD will be combined to the GND (Gemeinsame Norm-Datei) in early 2012, the identifiers of "legacy" records however will remain valid. They already are distinct and as such the parent module <SeeAlso::Identifier::GND> handles them simultaneously. As of v0.57 SeeAlso::Identifier::GND is lacking support for 10-digit identifiers and does not implement all possible constraints (e.g. there are conflicting checksum algorithms but by looking at the identifier you can not always determine the authority file it belongs to and therefore there is no certainity about the correct checksum).

For compatibility reasons with SeeAlso::Identifier::GND the objects of this module are implemented as blessed hashes instead of blessed scalars.

METHODS

parse ( $value )

Get and/or set the value of the PND identifier. Returns an empty string or the valid PND number. You can also use this method as function.

Older numbers begin with "10" to "16" and have 8 digits plus check digit (which might be "X"), Newer assigned since April 2011 have 9 digits plus check digit(0-X) and currently begin with "10".

Although there is no official form known which notates PND numbers with dash(es), their input is permitted, also prefixes "PND", "PND " and the likes.

value

get/set using parse, not parent's method

valid

Performs checksum calculation for already parsed PND numbers.

The mod-11-checksum is constructed the same way as for the "PICA PPN" (Pica Production Numbar of the German National Library (PND identifiers acutally are PICA PPNs).

hash

This is only since SeeAlso::Identifier::GND as of v0.57 is not compliant to the interfaces specified by SeeAlso::Identifier with respect to "indexed" being an alias for "hash".

canonical

This is only since SeeAlso::Identifier::GND as of v0.57 is not compliant to the interfaces specified by SeeAlso::Identifier with respect to "normalized" being an alias for "canonical".

cmp

establish "numerical" order by left-padding with zeroes

pretty

Try to give the most official form of the identifier.

AUTHOR

Thomas Berger <THB@cpan.org>

ACKNOWLEDGEMENTS

Jakob Voss <jakob.voss@gbv.de> crafted SeeAlso::Identifier::GND.

COPYRIGHT

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO

perl(1), <SeeAlso::Identifer::GND>.