NAME
Wikibase::Datatype::Lexeme - Wikibase lexeme datatype.
SYNOPSIS
use Wikibase::Datatype::Lexeme;
my $obj = Wikibase::Datatype::Lexeme->new(%params);
my $forms_ar = $obj->forms;
my $language = $obj->language;
my $lastrevid = $obj->lastrevid;
my $lemmas_ar = $obj->lemmas;
my $lexical_category = $obj->lexical_category;
my $modified = $obj->modified;
my $ns = $obj->ns;
my $senses_ar = $obj->senses;
my $statements_ar = $obj->statements;
my $title = $obj->title;
DESCRIPTION
This datatype is item class for representing claim.
METHODS
new
my $obj = Wikibase::Datatype::Lexeme->new(%params);
Constructor.
Returns instance of object.
forms
Forms. Parameter is optional.
language
Language. Link to QID. Parameter is optional.
lastrevid
Last revision ID. Parameter is optional.
lemmas
Lemmas. Parameter is optional.
lexical_category
Lexical category. Link to QID. Parameter is optional.
modified
Date of modification. Parameter is optional.
ns
Namespace. Default value is 0.
senses
Senses. Parameter is optional.
statements
Item statements. Reference to array with Wikibase::Datatype::Statement instances. Parameter is optional.
title
Lexeme title. Parameter is optional.
forms
my $forms_ar = $obj->forms;
Get forms.
Returns reference to array with Wikibase::Datatype::Form instances.
language
my $language = $obj->language;
Get language.
Returns string with QID.
lastrevid
my $lastrevid = $obj->lastrevid;
Get last revision ID.
Returns string.
lemmas
my $lemmas_ar = $obj->lemmas;
Get lemmas.
Returns reference to array with Wikibase::Datatype::Monolingual instances.
lexical_category
my $lexical_category = $obj->lexical_category;
Get lexical category.
Returns string with QID.
modified
my $modified = $obj->modified;
Get date of modification.
Returns string.
ns
my $ns = $obj->ns;
Get namespace.
Returns number.
senses
my $senses_ar = $obj->senses;
Get senses.
Returns reference to array with Wikibase::Datatype::Sense instances.
statements
my $statements_ar = $obj->statements;
Get statements.
Returns reference to array with Wikibase::Datatype::Statement instances.
title
my $title = $obj->title;
Get title.
Returns string.
ERRORS
new():
From Mo::utils::check_array_object():
Form isn't 'Wikibase::Datatype::Form' object.
Lemma isn't 'Wikibase::Datatype::Value::Monolingual' object.
Parameter 'forms' must be a array.
Parameter 'lemmas' must be a array.
Parameter 'senses' must be a array.
Parameter 'statements' must be a array.
Sense isn't 'Wikibase::Datatype::Sense' object.
Statement isn't 'Wikibase::Datatype::Statement' object.
From Wikibase::Datatype::Utils::check_entity():
Parameter 'language' must begin with 'Q' and number after it.";
Parameter 'lexical_category' must begin with 'Q' and number after it.";
EXAMPLE
use strict;
use warnings;
use Wikibase::Datatype::Lexeme;
use Wikibase::Datatype::Reference;
use Wikibase::Datatype::Snak;
use Wikibase::Datatype::Statement;
use Wikibase::Datatype::Value::Item;
use Wikibase::Datatype::Value::Monolingual;
use Wikibase::Datatype::Value::String;
use Wikibase::Datatype::Value::Time;
# Object.
my $statement1 = Wikibase::Datatype::Statement->new(
# instance of (P31) human (Q5)
'snak' => Wikibase::Datatype::Snak->new(
'datatype' => 'wikibase-item',
'datavalue' => Wikibase::Datatype::Value::Item->new(
'value' => 'Q5',
),
'property' => 'P31',
),
'property_snaks' => [
# of (P642) alien (Q474741)
Wikibase::Datatype::Snak->new(
'datatype' => 'wikibase-item',
'datavalue' => Wikibase::Datatype::Value::Item->new(
'value' => 'Q474741',
),
'property' => 'P642',
),
],
'references' => [
Wikibase::Datatype::Reference->new(
'snaks' => [
# stated in (P248) Virtual International Authority File (Q53919)
Wikibase::Datatype::Snak->new(
'datatype' => 'wikibase-item',
'datavalue' => Wikibase::Datatype::Value::Item->new(
'value' => 'Q53919',
),
'property' => 'P248',
),
# VIAF ID (P214) 113230702
Wikibase::Datatype::Snak->new(
'datatype' => 'external-id',
'datavalue' => Wikibase::Datatype::Value::String->new(
'value' => '113230702',
),
'property' => 'P214',
),
# retrieved (P813) 7 December 2013
Wikibase::Datatype::Snak->new(
'datatype' => 'time',
'datavalue' => Wikibase::Datatype::Value::Time->new(
'value' => '+2013-12-07T00:00:00Z',
),
'property' => 'P813',
),
],
),
],
);
my $statement2 = Wikibase::Datatype::Statement->new(
# sex or gender (P21) male (Q6581097)
'snak' => Wikibase::Datatype::Snak->new(
'datatype' => 'wikibase-item',
'datavalue' => Wikibase::Datatype::Value::Item->new(
'value' => 'Q6581097',
),
'property' => 'P21',
),
'references' => [
Wikibase::Datatype::Reference->new(
'snaks' => [
# stated in (P248) Virtual International Authority File (Q53919)
Wikibase::Datatype::Snak->new(
'datatype' => 'wikibase-item',
'datavalue' => Wikibase::Datatype::Value::Item->new(
'value' => 'Q53919',
),
'property' => 'P248',
),
# VIAF ID (P214) 113230702
Wikibase::Datatype::Snak->new(
'datatype' => 'external-id',
'datavalue' => Wikibase::Datatype::Value::String->new(
'value' => '113230702',
),
'property' => 'P214',
),
# retrieved (P813) 7 December 2013
Wikibase::Datatype::Snak->new(
'datatype' => 'time',
'datavalue' => Wikibase::Datatype::Value::Time->new(
'value' => '+2013-12-07T00:00:00Z',
),
'property' => 'P813',
),
],
),
],
);
# Main item.
my $obj = Wikibase::Datatype::Lexeme->new(
'lemmas' => [
Wikibase::Datatype::Value::Monolingual->new(
'language' => 'cs',
'value' => 'pes',
),
],
'statements' => [
$statement1,
$statement2,
],
'title' => 'Lexeme:L469',
);
# Print out.
print "Title: ".$obj->title."\n";
print "Statements:\n";
foreach my $statement (@{$obj->statements}) {
print "\tStatement:\n";
print "\t\t".$statement->snak->property.' -> '.$statement->snak->datavalue->value."\n";
print "\t\tQualifers:\n";
foreach my $property_snak (@{$statement->property_snaks}) {
print "\t\t\t".$property_snak->property.' -> '.
$property_snak->datavalue->value."\n";
}
print "\t\tReferences:\n";
foreach my $reference (@{$statement->references}) {
print "\t\t\tReference:\n";
foreach my $reference_snak (@{$reference->snaks}) {
print "\t\t\t".$reference_snak->property.' -> '.
$reference_snak->datavalue->value."\n";
}
}
}
# Output:
# Title: Lexeme:L469
# Statements:
# Statement:
# P31 -> Q5
# Qualifers:
# P642 -> Q474741
# References:
# Reference:
# P248 -> Q53919
# P214 -> 113230702
# P813 -> +2013-12-07T00:00:00Z
# Statement:
# P21 -> Q6581097
# Qualifers:
# References:
# Reference:
# P248 -> Q53919
# P214 -> 113230702
# P813 -> +2013-12-07T00:00:00Z
DEPENDENCIES
Error::Pure, Mo, Mo::utils, Wikibase::Datatype::Utils.
SEE ALSO
- Wikibase::Datatype
-
Wikibase datatypes.
REPOSITORY
https://github.com/michal-josef-spacek/Wikibase-Datatype
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© Michal Josef Špaček 2020
BSD 2-Clause License
VERSION
0.01