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

$pnd->pretty; # '' or PND identifier again (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 a possibly 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"), More recently (since April 2011) assigned numbers 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 ( [$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 Number of the German National Library (PND identifiers acutally are PICA PPNs).

hash ( [$value] )

Sets and/or gets a form of the identifier suitable for processing. In this class this will yield the same form as "parse", provided it passes the "valid" test(s).

indexed ( [$value] )

This is only since the parent class 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 ( [$value] )

Yields the (for SeeAlso) canonical form of the identifier (if valid) as an URI.

normalized ( [$value] )

This is only since the parent class 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 ( $value )

For comparisons a "numerical" order is established by left-padding the identifiers with sufficiently many zeroes.

pretty

Try to give the most official form of the identifier.

AUTHOR

Thomas Berger <THB@gymel.com>

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.