package Catmandu::Fix::wd_simple_strings;
#ABSTRACT: Simplify labels, descriptions, and aliases of Wikidata entity records
our $VERSION = '0.06'; #VERSION
use Catmandu::Sane;
use Moo;
sub fix {
my ($self, $data) = @_;
foreach my $what (qw(labels descriptions)) {
my $hash = $data->{$what};
if ($hash) {
foreach my $lang (keys %$hash) {
$hash->{$lang} = $hash->{$lang}->{value};
};
}
}
if (my $hash = $data->{aliases}) {
foreach my $lang (keys %$hash) {
$hash->{$lang} = [ map { $_->{value} } @{$hash->{$lang}} ];
}
}
$data;
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
Catmandu::Fix::wd_simple_strings - Simplify labels, descriptions, and aliases of Wikidata entity records
=head1 VERSION
version 0.06
=head1 DESCRIPTION
This L<Catmandu::Fix> modifies a Wikidata entity record by simplifying the
labels, aliases, and descriptions. In particular it converts
"en": { "language: "en", "value": "foo" }
"en": [ { "language: "en", "value": "foo" },
{ "language: "en", "value": "bar" } ]
to
"en": "foo"
"en": ["foo","bar"]
=head1 SEE ALSO
L<Catmandu::Fix::wd_simple> applies both L<Catmandu::Fix::wd_simple_strings>
and L<Catmandu::Fix::wd_simple_claims>.
=head1 AUTHOR
Jakob Voß
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Jakob Voß.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut