NAME
MARC::Convert::Wikidata::Object::PublicationDate - Bibliographic Wikidata object for publication date defined by MARC record.
SYNOPSIS
use MARC::Convert::Wikidata::Object::PublicationDate;
my $obj = MARC::Convert::Wikidata::Object::PublicationDate->new(%params);
my $copyright = $obj->copyright;
my $date = $obj->date;
my $earliest_date = $obj->earliest_date;
my $end_time = $obj->end_time;
my $latest_date = $obj->latest_date;
my $precision = $obj->precision;
my $sourcing_circumstances = $obj->sourcing_circumstances;
my $start_time = $obj->start_time;
DESCRIPTION
The object for store publication date in book editions in the Czech National Library.
Possible scenarios are:
- Precise date
 - 
We could use 'date' parameter to store publication date.
 - Precise decade
 - 
We could use 'date' and 'precision' parameters to store publication date with precision (e.g. decade 1910s).
 - Date between
 - 
We could use 'earliest_date' and 'latest_date' parameters to store publication date.
 - Date defined as period of time
 - 
We could use 'start_time' and 'end_time' parameters to store publication date. e.g. For book series which one volume is from 'start_time' and last volume from 'end_time' publication date.
 - Date which is with some accuracy
 - 
We could use 'date' and 'sourcing_circumstances' parameters do define accuracy (e.g. circa).
 - Date for copyright
 - 
We could use previous versions with 'copyright' parameter.
 
METHODS
new
my $obj = MARC::Convert::Wikidata::Object::PublicationDate->new(%params);
Constructor.
Returns instance of object.
copyrightFlag, that date is for copyright.
Default value is 0.
datePrecise date.
Date is in YYYY-MM-DD, YYYY-M-D, YYYY-MM, YYYY-M or YYYY format.
The parameter is in conflict with (earliest_date and latest_date) and (start_time and end_time).
Default value is undef.
earliest_dateEarliest date for definition publication date between dates.
Date is in YYYY-MM-DD, YYYY-M-D, YYYY-MM, YYYY-M or YYYY format.
The parameter is in conflict with (date) and (start_time and end_time).
Default value is undef.
end_timeEnd date for definition publication date via period of time.
Date is in YYYY-MM-DD, YYYY-M-D, YYYY-MM, YYYY-M or YYYY format.
The parameter is in conflict with (date) and (earliest_date and latest_date).
Default value is undef.
latest_dateLatest date for definition publication date between dates.
Date is in YYYY-MM-DD, YYYY-M-D, YYYY-MM, YYYY-M or YYYY format.
The parameter is in conflict with (date) and (start_time and end_time).
Default value is undef.
precisionPrecision for date.
Possible values are:
day (default if 'date' present)
month
year
decade
century
millenium
sourcing_circumstancesSourcing circumstances string.
Possible values are:
circa
near
presumably
disputed
start_timeStart date for definition publication date via period of time.
Date is in YYYY-MM-DD, YYYY-M-D, YYYY-MM, YYYY-M or YYYY format.
The parameter is in conflict with (date) and (earliest_date and latest_date).
Default value is undef.
copyright
my $copyright = $obj->copyright;
Get copyright flag.
Returns 0/1.
date
my $date = $obj->date;
Get date.
Returns string.
earliest_date
my $earliest_date = $obj->earliest_date;
Get earlest date.
Returns string.
end_time
my $end_time = $obj->end_time;
Get end time.
Returns string.
latest_date
my $latest_date = $obj->latest_date;
Get latest date.
Returns string.
precision
my $precision = $obj->precision;
Get date precision.
Returns string.
sourcing_circumstances
my $sourcing_circumstances = $obj->sourcing_circumstances;
Get sourcing circumstances string.
Returns string.
start_time
my $start_time = $obj->start_time;
Get start time.
Returns string.
ERRORS
new():
        From Mo::utils::check_bool():
                Parameter 'copyright' must be a bool (0/1).
                        Value: %s
        From Mo::utils::check_strings():
                Parameter 'precision' must have strings definition.
                Parameter 'precision' must have right string definition.
                Parameter 'precision' must be one of defined strings.
                        String: %s
                        Possible strings: %s
                Parameter 'sourcing_circumstances' must have strings definition.
                Parameter 'sourcing_circumstances' must have right string definition.
                Parameter 'sourcing_circumstances' must be one of defined strings.
                        String: %s
                        Possible strings: %s
        From Mo::utils::Date::check_date():
                Parameter 'date' for date is in bad format.
                        Value: %s
                Parameter 'date' has year greater than actual year.
                Parameter 'earliest_date' for date is in bad format.
                        Value: %s
                Parameter 'earliest_date' has year greater than actual year.
                Parameter 'end_time' for date is in bad format.
                        Value: %s
                Parameter 'end_time' has year greater than actual year.
                Parameter 'start_time' for date is in bad format.
                        Value: %s
                Parameter 'start_time' has year greater than actual year.
        Parameter 'date' is in conflict with parameter 'earliest_date'.
        Parameter 'date' is in conflict with parameter 'latest_date'.
        Parameter 'date' is in conflict with parameter 'start_time'.
        Parameter 'date' is in conflict with parameter 'end_time'.
        Parameter 'earliest_date' is in conflict with parameter 'start_time'.
        Parameter 'earliest_date' is in conflict with parameter 'end_time'.
        Parameter 'latest_date' is in conflict with parameter 'start_time'.
        Parameter 'latest_date' is in conflict with parameter 'end_time'.
        Parameter 'precision' is in conflict with parameter 'earliest_date'.
        Parameter 'precision' is in conflict with parameter 'latest_date'.
        Parameter 'precision' is in conflict with parameter 'start_time'.
        Parameter 'precision' is in conflict with parameter 'end_time'.
EXAMPLE1
use strict;
use warnings;
use Data::Printer;
use MARC::Convert::Wikidata::Object::PublicationDate;
my $obj = MARC::Convert::Wikidata::Object::PublicationDate->new(
        'date' => '2014',
);
p $obj;
# Output:
# MARC::Convert::Wikidata::Object::PublicationDate  {
#     parents: Mo::Object
#     public methods (5):
#         BUILD
#         Error::Pure:
#             err
#         Mo::utils:
#             check_bool, check_strings
#         Readonly:
#             Readonly
#     private methods (1): _check_conflict
#     internals: {
#         date   2014
#     }
# }
EXAMPLE2
use strict;
use warnings;
use Data::Printer;
use MARC::Convert::Wikidata::Object::PublicationDate;
my $obj = MARC::Convert::Wikidata::Object::PublicationDate->new(
        'earliest_date' => '2014',
        'latest_date' => '2020',
);
p $obj;
# Output:
# MARC::Convert::Wikidata::Object::PublicationDate  {
#     parents: Mo::Object
#     public methods (5):
#         BUILD
#         Error::Pure:
#             err
#         Mo::utils:
#             check_bool, check_strings
#         Readonly:
#             Readonly
#     private methods (1): _check_conflict
#     internals: {
#         earliest_date   2014,
#         latest_date     2020
#     }
# }
EXAMPLE3
use strict;
use warnings;
use Data::Printer;
use MARC::Convert::Wikidata::Object::PublicationDate;
my $obj = MARC::Convert::Wikidata::Object::PublicationDate->new(
        'start_time' => '2014',
        'end_time' => '2020',
);
p $obj;
# Output:
# MARC::Convert::Wikidata::Object::PublicationDate  {
#     parents: Mo::Object
#     public methods (5):
#         BUILD
#         Error::Pure:
#             err
#         Mo::utils:
#             check_bool, check_strings
#         Readonly:
#             Readonly
#     private methods (1): _check_conflict
#     internals: {
#         end_time     2020,
#         start_time   2014
#     }
# }
EXAMPLE4
use strict;
use warnings;
use Data::Printer;
use MARC::Convert::Wikidata::Object::PublicationDate;
my $obj = MARC::Convert::Wikidata::Object::PublicationDate->new(
        'date' => '2014',
        'sourcing_circumstances' => 'circa',
);
p $obj;
# Output:
# MARC::Convert::Wikidata::Object::PublicationDate  {
#     parents: Mo::Object
#     public methods (5):
#         BUILD
#         Error::Pure:
#             err
#         Mo::utils:
#             check_bool, check_strings
#         Readonly:
#             Readonly
#     private methods (1): _check_conflict
#     internals: {
#         date                     2014,
#         sourcing_circumstances   "circa"
#     }
# }
EXAMPLE5
use strict;
use warnings;
use Data::Printer;
use MARC::Convert::Wikidata::Object::PublicationDate;
my $obj = MARC::Convert::Wikidata::Object::PublicationDate->new(
        'copyright' => 1,
        'date' => '2014',
);
p $obj;
# Output:
# MARC::Convert::Wikidata::Object::PublicationDate  {
#     parents: Mo::Object
#     public methods (5):
#         BUILD
#         Error::Pure:
#             err
#         Mo::utils:
#             check_bool, check_strings
#         Readonly:
#             Readonly
#     private methods (1): _check_conflict
#     internals: {
#         copyright   1,
#         date        2014
#     }
# }
DEPENDENCIES
Error::Pure, Mo, Mo::utils, Mo::utils::Date, Readonly.
SEE ALSO
- MARC::Convert::Wikidata
 - 
Conversion class between MARC record and Wikidata object.
 
REPOSITORY
https://github.com/michal-josef-spacek/MARC-Convert-Wikidata-Object
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© Michal Josef Špaček 2021-2025
BSD 2-Clause License
VERSION
0.15