From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

NAME

MARC::Convert::Wikidata::Object - Bibliographic Wikidata object defined by MARC record.

SYNOPSIS

my $obj = MARC::Convert::Wikidata::Object->new(%params);
my $authors_ar = $obj->authors;
my $authors_of_afterword_ar = $obj->authors_of_afterword;
my $authors_of_introduction_ar = $obj->authors_of_introduction;
my $compilers = $obj->compilers;
my $cover = $obj->cover;
my $covers_ar = $obj->covers;
my $cycles_ar = $obj->cycles;
my $directors_ar = $obj->directors;
my $dml = $obj->dml;
my $edition_number = $obj->edition_number;
my $edition_of_work = $obj->edition_of_work;
my $editors_ar = $obj->editors;
my $end_time = $obj->end_time;
my $external_ids_ar = $obj->external_ids;
my $full_name = $obj->full_name;
my $illustrators_ar = $obj->illustrators;
my $isbns_ar = $obj->isbns;
my $issn = $obj->issn;
my $kramerius_ar = $obj->krameriuses;
my $languages_ar = $obj->languages;
my $narrators_ar = $obj->narrators;
my $number_of_pages = $obj->number_of_pages;
my $photographers_ar = $obj->photographers;
my $publication_date = $obj->publication_date;
my $publishers_ar = $obj->publishers;
my $series_ar = $obj->series;
my $start_time = $obj->start_time;
my $subtitles_ar = $obj->subtitles;
my $title = $obj->title;
my $translators_ar = $obj->translators;

METHODS

new

my $obj = MARC::Convert::Wikidata::Object->new(%params);

Constructor.

Returns instance of object.

  • authors

    List of authors. Reference to array with MARC::Convert::Wikidata::Object::People instances.

    Default value is reference to blank array.

  • authors_of_afterword

    List of authors of afterword. Reference to array with MARC::Convert::Wikidata::Object::People instances.

    Default value is reference to blank array.

  • authors_of_introduction

    List of authors of introduction. Reference to array with MARC::Convert::Wikidata::Object::People instances.

    Default value is reference to blank array.

  • compilers

    List of compilers. Reference to array with MARC::Convert::Wikidata::Object::People instances.

    Default value is reference to blank array.

  • cover

    Parameter is deprecated. Use covers instead of it.

    Book cover. Possible values: * hardback * paperback

    Default value is undef.

  • covers

    Book covers.

    It's reference to array with 'hardback', 'paperback' values.

    Default value is [].

  • cycles

    List of book cycles. Reference to array with MARC::Convert::Wikidata::Object::Series instances.

    Default value is [].

  • directors

    List of directors. Reference to array with MARC::Convert::Wikidata::Object::People instances.

    Default value is reference to blank array.

  • dml

    DML id.

    Default value is undef.

  • edition_number

    Edition number.

    Default value is undef.

  • edition_of_work

    Edition of work.

    Default value is undef.

  • editors

    List of editors. Reference to array with MARC::Convert::Wikidata::Object::People instances.

    Default value is reference to blank array.

  • end_time

    End time.

    Default value is undef.

  • external_ids

    External ids.

    Need to be a reference to array with MARC::Convert::Wikidata::Object::ExternalId instances.

    Default value is [].

  • illustrators

    List of illustrators. Reference to array with MARC::Convert::Wikidata::Object::People instances.

    Default value is reference to blank array.

  • isbns

    List of ISBNs. Reference to array with MARC::Convert::Wikidata::Object::ISBN instances.

    Default value is reference to blank array.

  • issn

    ISSN number.

    Default value is undef.

  • krameriuses

    List of Kramerius systems with digitized scan. Reference to array with MARC::Convert::Wikidata::Object::Kramerius instances.

    Default value is reference to blank array.

  • languages

    List of languages of book edition (TODO Format)

    Default value is reference to blank array.

  • narrators

    List of narrators. Reference to array with MARC::Convert::Wikidata::Object::People instances.

    Default value is reference to blank array.

  • number_of_pages

    Number of pages.

    Default value is undef.

  • photographers

    List of photographers. Reference to array with MARC::Convert::Wikidata::Object::People instances.

    Default value is reference to blank array.

  • publication_date

    Publication date.

    Default value is undef.

  • publishers

    List of Publishers. Reference to array with MARC::Convert::Wikidata::Object::Publisher instances.

    Default value is [].

  • series

    List of book series. Reference to array with MARC::Convert::Wikidata::Object::Series instances.

    Default value is [].

  • start_time

    Start time.

    Default value is undef.

  • subtitles

    List of subtitles. Reference to array with strings.

    Default value is [].

  • title

    Title of book edition.

    Default value is undef.

  • translators

    List of translators. Reference to array with MARC::Convert::Wikidata::Object::People instances.

    Default value is reference to blank array.

authors

my $authors_ar = $obj->authors;

Get reference to array with author objects.

Returns reference to array of MARC::Convert::Wikidata::Object::People instances.

authors_of_afterword

my $authors_of_afterword_ar = $obj->authors_of_afterword;

Get reference to array with author of afterword objects.

Returns reference to array of MARC::Convert::Wikidata::Object::People instances.

authors_of_introduction

my $authors_of_introduction_ar = $obj->authors_of_introduction;

Get reference to array with author of introduction objects.

Returns reference to array of MARC::Convert::Wikidata::Object::People instances.

compilers

my $compilers_ar = $obj->compilers;

Get list of compilers.

Returns reference to array of MARC::Convert::Wikidata::Object::People instances.

cover

my $cover = $obj->cover;

Get book cover.

Returns string (hardback or paperback).

covers

my $covers_ar = $obj->covers;

Get book covers.

Returns reference to array with cover strings.

cycles

my $cycles_ar = $obj->cycles;

Get reference to array with Serie item objects.

Returns reference to array of MARC::Convert::Wikidata::Object::Series instances.

directors

my $directors_ar = $obj->directors;

Get list of directors.

Returns reference to array of MARC::Convert::Wikidata::Object::People instances.

dml

my $dml = $obj->dml;

Get DML id.

Returns number.

edition_number

my $edition_number = $obj->edition_number;

Get edition number.

Returns number.

edition_of_work

my $edition_of_work = $obj->edition_of_work;

Get edition of work.

Returns MARC::Convert::Wikidata::Object::Work instance.

editors

my $editors_ar = $obj->editors;

Get list of editors.

Returns reference to array of MARC::Convert::Wikidata::Object::People instances.

end_time

my $end_time = $obj->end_time;

Get end time.

Returns number.

external_ids

my $external_ids_ar = $obj->external_ids;

Get list of external ids.

Returns reference to array with MARC::Convert::Wikidata::Object::ExternalId instances.

full_name

my $full_name = $obj->full_name;

Get full name of edition in format '__TITLE__: __SUBTITLE__'.

Returns string.

illustrators

my $illustrators_ar = $obj->illustrators;

Get list of illustrators.

Returns reference to array of MARC::Convert::Wikidata::Object::People instances.

isbns

my $isbns_ar = $obj->isbns;

Get list of ISBNs.

Returns reference to array of MARC::Convert::Wikidata::Object::ISBN instances.

issn

my $issn = $obj->issn;

Get ISSN number.

Returns string.

c<krameriuses>

my $kramerius_ar = $obj->krameriuses;

Get reference to array with Kramerius item objects.

Returns reference to array of MARC::Convert::Wikidata::Object::Kramerius instances.

languages

my $languages_ar = $obj->languages;

TODO

narrators

my $narrators_ar = $obj->narrators;

Get list of narrators.

Returns reference to array of MARC::Convert::Wikidata::Object::People instances.

number_of_pages

my $number_of_pages = $obj->number_of_pages;

TODO

photographers

my $photographers_ar = $obj->photographers;

Get reference to array with photographers objects.

Returns reference to array of MARC::Convert::Wikidata::Object::People instances.

publication_date

my $publication_date = $obj->publication_date;

TODO

publishers

my $publishers_ar = $obj->publishers;

Get list of publishing houses.

Returns reference to array of MARC::Convert::Wikidata::Object::Publisher instances.

series

my $series_ar = $obj->series;

Get reference to array with Serie item objects.

Returns reference to array of MARC::Convert::Wikidata::Object::Series instances.

start_time

my $start_time = $obj->start_time;

Get start time.

Returns number.

subtitle

my $subtitles_ar = $obj->subtitles;

Get reference to array with subtitles.

Returns reference to array of strings.

title

my $title = $obj->title;

Get title.

Returns string.

translators

my $translators_ar = $obj->translators;

Get list of translators.

Returns reference to array of MARC::Convert::Wikidata::Object::People instances.

ERRORS

new():
From Mo::utils::check_array_object():
Author isn't 'MARC::Convert::Wikidata::Object::People' object.
Author of afterword isn't 'MARC::Convert::Wikidata::Object::People' object.
Author of introduction isn't 'MARC::Convert::Wikidata::Object::People' object.
Book series isn't 'MARC::Convert::Wikidata::Object::Series' object.
Book cover '%s' doesn't exist.
Book cycle isn't 'MARC::Convert::Wikidata::Object::Series' object.
Compiler isn't 'MARC::Convert::Wikidata::Object::People' object.
Director isn't 'MARC::Convert::Wikidata::Object::People' object.
Editor isn't 'MARC::Convert::Wikidata::Object::People' object.
External id isn't 'MARC::Convert::Wikidata::Object::ExternalId' object.
Illustrator isn't 'MARC::Convert::Wikidata::Object::People' object.
Narrator isn't 'MARC::Convert::Wikidata::Object::People' object.
Parameter 'authors' must be a array.
Parameter 'authors_of_afterword' must be a array.
Parameter 'authors_of_introduction' must be a array.
Parameter 'compilers' must be a array.
Parameter 'cycles' must be a array.
Parameter 'directors' must be a array.
Parameter 'editors' must be a array.
Parameter 'end_time' must be a number.
Parameter 'external_ids' must be a array.
Parameter 'illustrators' must be a array.
Parameter 'languages' must be a array.
Parameter 'narrators' must be a array.
Parameter 'publishers' must be a array.
Parameter 'series' must be a array.
Parameter 'start_time' must be a number.
Parameter 'translators' must be a array.
Publisher isn't 'MARC::Convert::Wikidata::Object::Publisher' object.
Translator isn't 'MARC::Convert::Wikidata::Object::People' object.
From Mo::utils::check_isa():
Parameter 'edition_of_work' must be a 'MARC::Convert::Wikidata::Object::Work' object.
Value: %s
Reference: %s
From Mo::utils::check_number():
Parameter '%s' must a number.
Value: %s

EXAMPLE1

use strict;
use Unicode::UTF8 qw(decode_utf8);
my $aut = MARC::Convert::Wikidata::Object::People->new(
'date_of_birth' => '1952-12-08',
'external_ids' => [
MARC::Convert::Wikidata::Object::ExternalId->new(
'name' => 'nkcr_aut',
'value' => 'jn20000401266',
),
],
'name' => decode_utf8('Jiří'),
'surname' => 'Jurok',
);
my $publisher = MARC::Convert::Wikidata::Object::Publisher->new(
'name' => decode_utf8('Město Příbor'),
'place' => decode_utf8('Příbor'),
);
my $isbn = MARC::Convert::Wikidata::Object::ISBN->new(
'isbn' => '80-238-9541-9',
'publisher' => $publisher,
);
my $obj = MARC::Convert::Wikidata::Object->new(
'authors' => [$aut],
'date_of_publication' => 2002,
'edition_number' => 2,
'edition_of_work' => MARC::Convert::Wikidata::Object::Work->new(
'title' => decode_utf8('Dějiny města Příbora'),
'title_language' => 'cze',
),
'external_ids' => [
MARC::Convert::Wikidata::Object::ExternalId->new(
'name' => 'cnb',
'value' => 'cnb001188266',
),
MARC::Convert::Wikidata::Object::ExternalId->new(
'name' => 'lccn',
'value' => '53860313',
),
],
'isbns' => [$isbn],
'number_of_pages' => 414,
'publishers' => [$publisher],
'title' => decode_utf8('Dějiny města Příbora'),
);
p $obj;
# Output:
# MARC::Convert::Wikidata::Object {
# parents: Mo::Object
# public methods (8):
# BUILD, full_name
# Error::Pure:
# err
# List::MoreUtils::XS:
# none
# Mo::utils:
# check_array, check_array_object, check_number
# Readonly:
# Readonly
# private methods (0)
# internals: {
# authors [
# [0] MARC::Convert::Wikidata::Object::People
# ],
# covers [],
# date_of_publication 2002,
# edition_number 2,
# edition_of_work MARC::Convert::Wikidata::Object::Work,
# external_ids [
# [0] MARC::Convert::Wikidata::Object::ExternalId,
# [1] MARC::Convert::Wikidata::Object::ExternalId
# ],
# isbns [
# [0] MARC::Convert::Wikidata::Object::ISBN
# ],
# number_of_pages 414,
# publishers [
# [0] MARC::Convert::Wikidata::Object::Publisher
# ],
# title "Dějiny města Příbora"
# }
# }

DEPENDENCIES

Error::Pure, List::MoreUtils, Mo, Mo::utils, 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

http://skim.cz

LICENSE AND COPYRIGHT

© Michal Josef Špaček 2021-2025

BSD 2-Clause License

VERSION

0.13