![]() | Bu modül şu Lua modülünü kullanıyor: |
![]() | Çok fazla sayfada kullanılan bu modül alınmıştır. Vandalizm veya istem dışı hatalar pek çok sayfayı etkileyeceğinden ve en ufak düzenleme bile sunuculara önemli bir yük bindirebileceğinden tabidir. |
Methods
The module "Vikiveri" contains the following methods, that allow the calling script to retrieve the value for any property from Vikiveri by supplying the property ID as the first parameter:
getValue
: Returns wiki-linked values, if applicable. All other values will be output similar to{{#property:}}
, except that if values with preferred rank exist, then only they are returned. UnlikeformatStatements
from ru:Модуль:Vikiveri,getValue
does not yet pick up any references (see ).getRawValue
: Returns non-linked property values and numbers with the thousand separator. It also returns the plain numeric value of a property which is a quantity. All other values will be output similar to{{#property:}}
, including normal values, even if preferred values exist.getDateValue
: Special method to return formatted dates. The default date format is [day month year]; an optional third parameter can be added for other date formats: for [month day, year], add "mdy"; for [month year], add "my"; for year only, add "y". A further optional parameter, which must be fourth, such as "BCE", may be added to override the default "BC" that is suffixed for dates BC.getImages
: Returns all of the images of a particular property, e.g. image (P18), Gene Atlas Image (P692), etc. Parameters are| propertyID | value / FETCH_Vikiveri / nil | separator (default=space) | size (default=220px)
. The returned text will be in the format [[File:Filename | size]] for each image with a selectable size and separator (which may be html). If a property is supplied that is not of type "commonsMedia", it will return empty text.getUnits
This takes a propertyID which is a quantity as the first parameter, and returns the name of the units that the property is using on the current page. It returns empty if the property is not a quantity type or if the value is not set. The second parameter may be used to override fetching from Vikiveri, if it is anything other than "FETCH_Vikiveri".getUnitID
This takes a propertyID which is a quantity as the first parameter, and returns the QID of the units that the property is using on the current page. It returns empty if the property is not a quantity type or if the value is not set. The second parameter may be used to override fetching from Vikiveri, if it is anything other than "FETCH_Vikiveri".
Vikiveri qualifier values (if present) can be retrieved by the following methods:
getQualifierValue
: returns only wiki-linked values, if applicable.getRawQualifierValue
: returns non-linked valuesgetQualifierDateValue
: returns formatted dates
If the property is not defined in Vikiveri for the article that invokes this code, then an empty string ("") is returned.
Other methods:
pageId
: returns the Vikiveri id (Q…) of the current page or nothing if the page is not connected to VikiverigetTAValue
: gets the TA98 (Terminologia Anatomica first edition 1998) values for property P1323. It takes no parameters and constructs its output as a list, with each value linked to an external resource. This is an exemplar for writing calls that need to return external links.ViewSomething
: gets anything in the structured data, including labels, descriptions, references and interwiki links. See [1]getSiteLink
: gets name of a page in given in argument wiki (like enwikiquote for English Wikiquote).Dump
:{{#invoke:Vikiveri|Dump|claims}}
spies the structured data. It uses the same arguments as ViewSomething. Try this with preview only to see results. That helps you a lot in developing Lua scripts that access the data. If used without arguments, it dumps everything including labels, descriptions, references and interwiki links. See [2]getImageLegend
: returns an image legend (image is property P18; image legend is property P2096).- Call as
{{#invoke:Vikiveri |getImageLegend | <PARAMETER> | lang=<ISO-639code> |id=<QID>}}
- Returns PARAMETER, unless it is equal to "FETCH_Vikiveri", from Item QID (expensive call). If QID is omitted or blank, the current article is used (not an expensive call). If lang is omitted, it uses the local wiki language, otherwise it uses the provided ISO-639 language code.
- The label is returned from the first image with 'preferred' rank; or from the first image with 'normal' rank if no image has preferred rank.
- Call as
getValueShortName
: returns the same data as getValue, but utilizes the property short name as the label, if available. This allows for piped links to use a shorter label where preferred. If short name is not set on the item, the normal label is used.
Arbitrary Access
As of 16 September 2015, it is now possible to fetch data from other articles by using their QID. The following call:
{{#invoke:Vikiveri|getValueFromID|<QID>|<Property>|FETCH_Vikiveri}}
will do the same as getValue, but takes an extra parameter, which is the QID of the Vikiveri item that you want to get the property value from. For example:
{{#invoke:Vikiveri|getValueFromID|Q151973|P26|FETCH_Vikiveri}}
will fetch a list of the linked values for 'spouse' (P26) from 'Richard Burton' (Q151973) from anywhere in the English Wikipedia.
This means that testing environments may be set up in user space, but remember that these calls are classed as expensive, so please use them as sparingly as possible.
Parameters
- For the generalized case (getValue), two unnamed parameters are supplied. The first is the ID of the property that is to be retrieved (e.g. P19 for birthplace or P26 for spouse). The second may be null, "FETCH_Vikiveri", or any other string, which becomes the returned value.
- For the generalized unlinked case (getRawValue), two unnamed parameters are supplied. The first is the ID of the property that is to be retrieved (e.g. P21 for gender). The second may be null, "FETCH_Vikiveri", or any other string, which becomes the returned value.
- For the generalized date case (getDateValue), three unnamed parameters are supplied. The first is the ID of the property that is to be retrieved (e.g. P569 for date of birth). The second may be null, "FETCH_Vikiveri", or any other string, which becomes the returned value. The third is the format that the date should be returned in, either dmy, mdy, my, or y.
Please note that lower-case parameters are no longer supported by the wikibase call: p123, so please check that upper-case, like P123, is used if problems should arise.
Usage
Example: spouse (P26)
{{#invoke:Vikiveri|getValue|P26|}}
= returns nothing, so suppresses the display of spouse in an infobox{{#invoke:Vikiveri|getValue|P26|FETCH_Vikiveri}}
= returns the linked value(s) of property P26 (spouse) stored in Vikiveri for the corresponding article (e.g. for article Bill Clinton, it returns Hillary Clinton){{#invoke:Vikiveri|getValue|P26|[[Hillary Rodham Clinton]]}}
= returns Hillary Rodham Clinton, allowing an infobox to use a local value rather than the value stored in Vikiveri.
Example in Infobox template
Inside an infobox definition, it may be called like this:
| data55 = {{#invoke:Vikiveri|getValue|P26|{{{spouse|FETCH_Vikiveri}}} }}
which causes the infobox to:
- not display spouse if the infobox parameter
|spouse
is set to be blank (as"| spouse ="
} - display the linked value(s) from Vikiveri if the infobox parameter
|spouse
is not supplied - display the local infobox parameter
|spouse
if it is supplied (e.g."|spouse = Hillary Rodham Clinton"
)
Optionally, it could be called as:
| data55 = {{#invoke:Vikiveri|getValue|P26|{{{spouse|}}} }}
which causes the infobox to:
- not display spouse if the infobox parameter
|spouse
is set to be blank (as"| spouse ="
} - not display spouse if the infobox parameter
|spouse
is not supplied - display the local infobox parameter
|spouse
if it is supplied (e.g."|spouse = Hillary Rodham Clinton"
) - display the linked value(s) from Vikiveri if the infobox parameter is locally set to FETCH_Vikiveri
See for a modification that allows fields, on a per article basis, to be blacklisted so that they never display. It also allows the editor to specify, on a per article basis, which fields may be automatically fetched from Vikiveri when local parameter is supplied; the default is none, allowing an infobox to be modified to accept Vikiveri without any change in the articles using the infobox until the functionality is enabled in the article.
Example:birth place
This works in just the same way as the calls above:
{{#invoke:Vikiveri|getValue|P19|}}
= returns nothing, so suppresses the display of birth place in an infobox{{#invoke:Vikiveri|getValue|P19|FETCH_Vikiveri}}
= returns the linked value(s) of property P19 (place of birth) stored in Vikiveri for the corresponding article (e.g. for article Bill Clinton, it returns Hope, Arkansas){{#invoke:Vikiveri|getValue|P19|[[Hope, Arkansas|Hope]]}}
= returns Hope, allowing an infobox to use a local value rather than the value stored in Vikiveri.
Example:gender
We don't want the returned value linked, so use:
- -
{{#invoke:Vikiveri|getRawValue|P21|FETCH_Vikiveri}}
Example:date of birth
If we want the date of birth in dmy format, we use:
- -
{{#invoke:Vikiveri|getDateValue|P569|FETCH_Vikiveri|dmy}}
If we want the date of birth in mdy format, we use:
- -
{{#invoke:Vikiveri|getDateValue|P569|FETCH_Vikiveri|mdy}}
If we want a year of birth, we use:
- -
{{#invoke:Vikiveri|getDateValue|P569|FETCH_Vikiveri|y}}
If we want a year of birth that may be BC, but should read "BCE", we use:
- -
{{#invoke:Vikiveri|getDateValue|P569|FETCH_Vikiveri|y|BCE}}
Example: Linking to Vikiveri item
Use the following code to just retrieve the Q-ID:
- -
{{#invoke:Vikiveri|pageId}}
Linking to Vikiveri used the usual Wiki markup:
- -
[[d:{{#invoke:Vikiveri|pageId}}|Name of Link]]
Example: Linking to another wiki page
Use code like this to link to another wiki. English Wikivoyage in the example:
- -
[[voy:{{#invoke:Vikiveri|getSiteLink|enwikivoyage}}|Name of Link]]
Testing
Testing spouse
Copy and paste the following into any article and preview it (please don't save!):
* - {{#invoke:Vikiveri|getValue|P26|}} * - {{#invoke:Vikiveri|getValue|P26|FETCH_Vikiveri}} * - {{#invoke:Vikiveri|getValue|P26|[[Hillary Rodham Clinton]]}}
In Bill Clinton you should get:
In Barack Obama you should get:
In Richard Burton you should get:
- -
- - Elizabeth Taylor, , , , Elizabeth Taylor
- - Hillary Rodham Clinton
In Franz Kafka you should get:
- -
- -
- - Hillary Rodham Clinton
Testing birthplace
Copy and paste the following into any article and preview it (please don't save!):
* - {{#invoke:Vikiveri|getValue|P19|}} * - {{#invoke:Vikiveri|getValue|P19|FETCH_Vikiveri}} * - {{#invoke:Vikiveri|getValue|P19|[[Newport]]}}
Try and check that the Vikiveri call correctly disambiguates.
Testing getValue, getRawValue and getDateValue
Copy and paste the following into any article and preview it (please don't save!):
* - {{#invoke:Vikiveri|getValue|P19|FETCH_Vikiveri}} * - {{#invoke:Vikiveri|getValue|P26|FETCH_Vikiveri}} * - {{#invoke:Vikiveri|getValue|P27|FETCH_Vikiveri}} * - {{#invoke:Vikiveri|getValue|P140|FETCH_Vikiveri}} * - {{#invoke:Vikiveri|getRawValue|P21|FETCH_Vikiveri}} * - {{#invoke:Vikiveri|getDateValue|P569|FETCH_Vikiveri|dmy}} * - {{#invoke:Vikiveri|getDateValue|P569|FETCH_Vikiveri|mdy}} * - {{#invoke:Vikiveri|getDateValue|P569|FETCH_Vikiveri|y}}
This should return the Vikiveri values for birthplace, spouse, citizenship, religion, gender, date of birth (twice) and year of birth, if they exist. The dob is first in dmy format and then in mdy.
Testing dates BC/BCE
Copy and paste the following into a short section of article such as (Horace #See also) and preview it (please don't save!):
* - {{#invoke:Vikiveri|getDateValue|P569|FETCH_Vikiveri|y}} * - {{#invoke:Vikiveri|getDateValue|P569|FETCH_Vikiveri|y|BCE}}
This should return 65 BC and 65 BCE, respectively.
-- vim: set noexpandtab ft=lua ts=4 sw=4: require('strict') local p = {} local debug = false ------------------------------------------------------------------------------ -- module local variables and functions local wiki = { langcode = mw.language.getContentLanguage().code } -- internationalisation local i18n = { ["errors"] = { ["property-not-found"] = "Özellik bulunamadı.", ["entity-not-found"] = "Vikiveri varlığı bulunamadı.", ["unknown-claim-type"] = "Bilinmeyen talep türü.", ["unknown-entity-type"] = "Bilinmeyen varlık türü.", ["qualifier-not-found"] = "Niteleyici bulunamadı.", ["site-not-found"] = "Wikimedia projesi bulunamadı.", ["unknown-datetime-format"] = "Bilinmeyen datetime biçimi.", ["local-article-not-found"] = "Makale bu vikide henüz mevcut değil." }, ["datetime"] = { -- $1 is a placeholder for the actual number [0] = "$1 milyar yıl", -- precision: billion years [1] = "$100 milyon yıl",-- precision: hundred million years [2] = "$10 milyon yıl", -- precision: ten million years [3] = "$1 milyon yıl", -- precision: million years [4] = "$100.000 yıl",-- precision: hundred thousand years [5] = "$10.000 yıl",-- precision: ten thousand years [6] = "$1 milenyum",-- precision: millennium [7] = "$1 yüzyıl",-- precision: century [8] = "$1lar", -- precision: decade -- the following use the format of #time parser function [9] = "Y",-- precision: year, [10] = "F Y",-- precision: month [11] = "j F Y", -- precision: day [12] = "j F Y ga",-- precision: hour [13] = "j F Y g:ia",-- precision: minute [14] = "j F Y g:i:sa",-- precision: second ["beforenow"] = "$1 MÖ",-- how to format negative numbers for precisions 0 to 5 ["afternow"] = "$1 MS",-- how to format positive numbers for precisions 0 to 5 ["bc"] = '"MÖ" $1', -- how print negative years ["ad"] = "$1",-- how print positive years -- the following are for function getDateValue() and getQualifierDateValue() ["default-format"] = "dmy", -- default value of the #3 (getDateValue) or -- #4 (getQualifierDateValue) argument ["default-addon"] = "MÖ",-- default value of the #4 (getDateValue) or -- #5 (getQualifierDateValue) argument ["prefix-addon"] = false,-- set to true for languages put "BC" in front of the -- datetime string; or the addon will be suffixed ["addon-sep"] = " ",-- separator between datetime string and addon (or inverse) ["format"] =-- options of the 3rd argument { ["mdy"] = "F j, Y", ["my"] = "F Y", ["y"] = "Y", ["dmy"] = "j F Y", ["ymd"] = "Y-m-d", ["ym"] = "Y-m" } }, ["monolingualtext"] = '<span lang="%language">%text</span>', ["warnDump"] = "[[Kategori:Vikiveri modülünden çağrılan 'Döküm' işlevi]]", ["ordinal"] = { [1] = ".", [2] = ".", [3] = ".", ["default"] = "." } } if wiki.langcode ~= "en" then --require("Module:i18n").loadI18n("Module:Wikidata/i18n", i18n) -- got idea from [[:w:Module:Wd]] local module_title; if ... == nil then module_title = mw.getCurrentFrame():getTitle() else module_title = ... end require('Modül:i18n').loadI18n(module_title..'/i18n', i18n) end -- this function needs to be internationalised along with the above: -- takes cardinal numer as a numeric and returns the ordinal as a string -- we need three exceptions in English for 1st, 2nd, 3rd, 21st, .. 31st, etc. local function makeOrdinal (cardinal) local ordsuffix = i18n.ordinal.default if cardinal % 10 == 1 then ordsuffix = i18n.ordinal[1] elseif cardinal % 10 == 2 then ordsuffix = i18n.ordinal[2] elseif cardinal % 10 == 3 then ordsuffix = i18n.ordinal[3] end -- In English, 1, 21, 31, etc. use 'st', but 11, 111, etc. use 'th' -- similarly for 12 and 13, etc. if (cardinal % 100 == 11) or (cardinal % 100 == 12) or (cardinal % 100 == 13) then ordsuffix = i18n.ordinal.default end return tostring(cardinal) .. ordsuffix end local function printError(code) return '<span class="error">' .. (i18n.errors[code] or code) .. '</span>' end local function parseDateFormat(f, timestamp, addon, prefix_addon, addon_sep) local year_suffix local tstr = "" local lang_obj = mw.language.new(wiki.langcode) local f_parts = mw.text.split(f, 'Y', true) for idx, f_part in pairs(f_parts) do year_suffix = '' if string.match(f_part, "x[mijkot]$") then -- for non-Gregorian year f_part = f_part .. 'Y' elseif idx < #f_parts then -- supress leading zeros in year year_suffix = lang_obj:formatDate('Y', timestamp) year_suffix = string.gsub(year_suffix, '^0+', '', 1) end tstr = tstr .. lang_obj:formatDate(f_part, timestamp) .. year_suffix end if addon ~= "" and prefix_addon then return addon .. addon_sep .. tstr elseif addon ~= "" then return tstr .. addon_sep .. addon else return tstr end end local function parseDateValue(timestamp, date_format, date_addon) local prefix_addon = i18n["datetime"]["prefix-addon"] local addon_sep = i18n["datetime"]["addon-sep"] local addon = "" -- check for negative date if string.sub(timestamp, 1, 1) == '-' then timestamp = '+' .. string.sub(timestamp, 2) addon = date_addon end local _date_format = i18n["datetime"]["format"][date_format] if _date_format ~= nil then return parseDateFormat(_date_format, timestamp, addon, prefix_addon, addon_sep) else return printError("unknown-datetime-format") end end -- This local function combines the year/month/day/BC/BCE handling of parseDateValue{} -- with the millennium/century/decade handling of formatDate() local function parseDateFull(timestamp, precision, date_format, date_addon) local prefix_addon = i18n["datetime"]["prefix-addon"] local addon_sep = i18n["datetime"]["addon-sep"] local addon = "" -- check for negative date if string.sub(timestamp, 1, 1) == '-' then timestamp = '+' .. string.sub(timestamp, 2) addon = date_addon end -- get the next four characters after the + (should be the year now in all cases) -- ok, so this is dirty, but let's get it working first local intyear = tonumber(string.sub(timestamp, 2, 5)) if intyear == 0 and precision <= 9 then return "" end -- precision is 10000 years or more if precision <= 5 then local factor = 10 ^ ((5 - precision) + 4) local y2 = math.ceil(math.abs(intyear) / factor) local relative = mw.ustring.gsub(i18n.datetime[precision], "$1", tostring(y2)) if addon ~= "" then -- negative date relative = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative) else relative = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative) end return relative end -- precision is decades (8), centuries (7) and millennia (6) local era, card if precision == 6 then card = math.floor((intyear - 1) / 1000) + 1 era = mw.ustring.gsub(i18n.datetime[6], "$1", makeOrdinal(card)) end if precision == 7 then card = math.floor((intyear - 1) / 100) + 1 era = mw.ustring.gsub(i18n.datetime[7], "$1", makeOrdinal(card)) end if precision == 8 then era = mw.ustring.gsub(i18n.datetime[8], "$1", tostring(math.floor(math.abs(intyear) / 10) * 10)) end if era then if addon ~= "" then era = mw.ustring.gsub(mw.ustring.gsub(i18n.datetime.bc, '"', ""), "$1", era) else era = mw.ustring.gsub(mw.ustring.gsub(i18n.datetime.ad, '"', ""), "$1", era) end return era end local _date_format = i18n["datetime"]["format"][date_format] if _date_format ~= nil then -- check for precision is year and override supplied date_format if precision == 9 then _date_format = i18n["datetime"][9] end return parseDateFormat(_date_format, timestamp, addon, prefix_addon, addon_sep) else return printError("unknown-datetime-format") end end -- the "qualifiers" and "snaks" field have a respective "qualifiers-order" and "snaks-order" field -- use these as the second parameter and this function instead of the built-in "pairs" function -- to iterate over all qualifiers and snaks in the intended order. local function orderedpairs(array, order) if not order then return pairs(array) end -- return iterator function local i = 0 return function() i = i + 1 if order[i] then return order[i], array[order[i]] end end end -- precision: 0 - billion years, 1 - hundred million years, ..., 6 - millennia, 7 - century, 8 - decade, 9 - year, 10 - month, 11 - day, 12 - hour, 13 - minute, 14 - second local function normalizeDate(date) date = mw.text.trim(date, "+") -- extract year local yearstr = mw.ustring.match(date, "^-?%d+") local year = tonumber(yearstr) -- remove leading zeros of year return year .. mw.ustring.sub(date, #yearstr + 1), year end local function formatDate(date, precision, timezone) precision = precision or 11 local date, year = normalizeDate(date) if year == 0 and precision <= 9 then return "" end -- precision is 10000 years or more if precision <= 5 then local factor = 10 ^ ((5 - precision) + 4) local y2 = math.ceil(math.abs(year) / factor) local relative = mw.ustring.gsub(i18n.datetime[precision], "$1", tostring(y2)) if year < 0 then relative = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative) else relative = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative) end return relative end -- precision is decades, centuries and millennia local era if precision == 6 then era = mw.ustring.gsub(i18n.datetime[6], "$1", tostring(math.floor((math.abs(year) - 1) / 1000) + 1)) end if precision == 7 then era = mw.ustring.gsub(i18n.datetime[7], "$1", tostring(math.floor((math.abs(year) - 1) / 100) + 1)) end if precision == 8 then era = mw.ustring.gsub(i18n.datetime[8], "$1", tostring(math.floor(math.abs(year) / 10) * 10)) end if era then if year < 0 then era = mw.ustring.gsub(mw.ustring.gsub(i18n.datetime.bc, '"', ""), "$1", era) elseif year > 0 then era = mw.ustring.gsub(mw.ustring.gsub(i18n.datetime.ad, '"', ""), "$1", era) end return era end -- precision is year if precision == 9 then return year end -- precision is less than years if precision > 9 then --[[ the following code replaces the UTC suffix with the given negated timezone to convert the global time to the given local time timezone = tonumber(timezone) if timezone and timezone ~= 0 then timezone = -timezone timezone = string.format("%.2d%.2d", timezone / 60, timezone % 60) if timezone[1] ~= '-' then timezone = "+" .. timezone end date = mw.text.trim(date, "Z") .. " " .. timezone end ]]-- local formatstr = i18n.datetime[precision] if year == 0 then formatstr = mw.ustring.gsub(formatstr, i18n.datetime[9], "") elseif year < 0 then -- Mediawiki formatDate doesn't support negative years date = mw.ustring.sub(date, 2) formatstr = mw.ustring.gsub(formatstr, i18n.datetime[9], mw.ustring.gsub(i18n.datetime.bc, "$1", i18n.datetime[9])) elseif year > 0 and i18n.datetime.ad ~= "$1" then formatstr = mw.ustring.gsub(formatstr, i18n.datetime[9], mw.ustring.gsub(i18n.datetime.ad, "$1", i18n.datetime[9])) end return mw.language.new(wiki.langcode):formatDate(formatstr, date) end end local function printDatavalueEntity(data, parameter) -- data fields: entity-type [string], numeric-id [int, Wikidata id] local id if data["entity-type"] == "item" then id = "Q" .. data["numeric-id"] elseif data["entity-type"] == "property" then id = "P" .. data["numeric-id"] else return printError("unknown-entity-type") end if parameter then if parameter == "link" then local linkTarget = mw.wikibase.getSitelink(id) local linkName = mw.wikibase.getLabel(id) if linkTarget then -- if there is a local Wikipedia article link to it using the label or the article title return "[[" .. linkTarget .. "|" .. (linkName or linkTarget) .. "]]" else -- if there is no local Wikipedia article output the label or link to the Wikidata object to let the user input a proper label if linkName then return linkName else return "[[:d:" .. id .. "|" .. id .. "]]" end end else return data[parameter] end else return mw.wikibase.getLabel(id) or id end end local function printDatavalueTime(data, parameter) -- data fields: time [ISO 8601 time], timezone [int in minutes], before [int], after [int], precision [int], calendarmodel [wikidata URI] -- precision: 0 - billion years, 1 - hundred million years, ..., 6 - millennia, 7 - century, 8 - decade, 9 - year, 10 - month, 11 - day, 12 - hour, 13 - minute, 14 - second -- calendarmodel: e.g. http://www.wikidata.org/entity/Q1985727 for the proleptic Gregorian calendar or http://www.wikidata.org/wiki/Q11184 for the Julian calendar] if parameter then if parameter == "calendarmodel" then data.calendarmodel = mw.ustring.match(data.calendarmodel, "Q%d+") -- extract entity id from the calendar model URI elseif parameter == "time" then data.time = normalizeDate(data.time) end return data[parameter] else return formatDate(data.time, data.precision, data.timezone) end end local function printDatavalueMonolingualText(data, parameter) -- data fields: language [string], text [string] if parameter then return data[parameter] else local result = mw.ustring.gsub(mw.ustring.gsub(i18n.monolingualtext, "%%language", data["language"]), "%%text", data["text"]) return result end end local function findClaims(entity, property) if not property or not entity or not entity.claims then return end if mw.ustring.match(property, "^P%d+$") then -- if the property is given by an id (P..) access the claim list by this id return entity.claims[property] else property = mw.wikibase.resolvePropertyId(property) if not property then return end return entity.claims[property] end end local function getSnakValue(snak, parameter) if snak.snaktype == "value" then -- call the respective snak parser if snak.datavalue.type == "string" then return snak.datavalue.value elseif snak.datavalue.type == "globecoordinate" then return printDatavalueCoordinate(snak.datavalue.value, parameter) elseif snak.datavalue.type == "quantity" then return printDatavalueQuantity(snak.datavalue.value, parameter) elseif snak.datavalue.type == "time" then return printDatavalueTime(snak.datavalue.value, parameter) elseif snak.datavalue.type == "wikibase-entityid" then return printDatavalueEntity(snak.datavalue.value, parameter) elseif snak.datavalue.type == "monolingualtext" then return printDatavalueMonolingualText(snak.datavalue.value, parameter) end end return mw.wikibase.renderSnak(snak) end local function getQualifierSnak(claim, qualifierId) -- a "snak" is Wikidata terminology for a typed key/value pair -- a claim consists of a main snak holding the main information of this claim, -- as well as a list of attribute snaks and a list of references snaks if qualifierId then -- search the attribute snak with the given qualifier as key if claim.qualifiers then local qualifier = claim.qualifiers[qualifierId] if qualifier then return qualifier[1] end end return nil, printError("qualifier-not-found") else -- otherwise return the main snak return claim.mainsnak end end local function getValueOfClaim(claim, qualifierId, parameter) local error local snak snak, error = getQualifierSnak(claim, qualifierId) if snak then return getSnakValue(snak, parameter) else return nil, error end end local function getReferences(frame, claim) local result = "" -- traverse through all references for ref in pairs(claim.references or {}) do local refparts -- traverse through all parts of the current reference for snakkey, snakval in orderedpairs(claim.references[ref].snaks or {}, claim.references[ref]["snaks-order"]) do if refparts then refparts = refparts .. ", " else refparts = "" end -- output the label of the property of the reference part, e.g. "imported from" for P143 refparts = refparts .. tostring(mw.wikibase.getLabel(snakkey)) .. ": " -- output all values of this reference part, e.g. "German Wikipedia" and "English Wikipedia" if the referenced claim was imported from both sites for snakidx = 1, #snakval do if snakidx > 1 then refparts = refparts .. ", " end refparts = refparts .. getSnakValue(snakval[snakidx]) end end if refparts then result = result .. frame:extensionTag("ref", refparts) end end return result end local function parseInput(frame) local qid = frame.args.qid if qid and (#qid == 0) then qid = nil end local propertyID = mw.text.trim(frame.args[1] or "") local input_parm = mw.text.trim(frame.args[2] or "") if input_parm ~= "FETCH_WIKIDATA" then return false, input_parm, nil, nil end local entity = mw.wikibase.getEntity(qid) local claims if entity and entity.claims then claims = entity.claims[propertyID] if not claims then return false, "", nil, nil end else return false, "", nil, nil end return true, entity, claims, propertyID end local function isType(claims, type) return claims[1] and claims[1].mainsnak.snaktype == "value" and claims[1].mainsnak.datavalue.type == type end local function getValue(entity, claims, propertyID, delim, labelHook) if labelHook == nil then labelHook = function (qnumber) return nil; end end if isType(claims, "wikibase-entityid") then local out = {} for k, v in pairs(claims) do local qnumber = "Q" .. v.mainsnak.datavalue.value["numeric-id"] local sitelink = mw.wikibase.getSitelink(qnumber) local label = labelHook(qnumber) or mw.wikibase.getLabel(qnumber) or qnumber if sitelink then out[#out + 1] = "[[" .. sitelink .. "|" .. label .. "]]" else out[#out + 1] = "[[:d:" .. qnumber .. "|" .. label .. "]]<abbr title='" .. i18n["errors"]["local-article-not-found"] .. "'>[*]</abbr>" end end return table.concat(out, delim) else -- just return best values return entity:formatPropertyValues(propertyID).value end end ------------------------------------------------------------------------------ -- module global functions if debug then function p.inspectI18n(frame) local val = i18n for _, key in pairs(frame.args) do key = mw.text.trim(key) val = val[key] end return val end end function p.descriptionIn(frame) local langcode = frame.args[1] local id = frame.args[2] -- verilen dilde veya bu Vikipedi sitesinin varsayılan dilinde bir Vikiveri varlığının açıklamasını döndürür return mw.wikibase.getEntity(id):getDescription(langcode or wiki.langcode) end function p.labelIn(frame) local langcode = frame.args[1] local id = frame.args[2] -- verilen dilde veya bu Vikipedi sitesinin varsayılan dilinde bir Vikiveri varlığının etiketini döndürür return mw.wikibase.getEntity(id):getLabel(langcode or wiki.langcode) end -- Bir değeri almak veya birden fazla değer varsa virgülle ayrılmış bir liste almak için kullanılır p.getValue = function(frame) local delimdefault = ", " -- **internationalise later** local delim = frame.args.delimiter or "" delim = string.gsub(delim, '"', '') if #delim == 0 then delim = delimdefault end local go, errorOrentity, claims, propertyID = parseInput(frame) if not go then return errorOrentity end return getValue(errorOrentity, claims, propertyID, delim) end -- Yukarıdakiyle aynı, ancak mevcutsa etiket için kısa ad özelliğini kullanır. p.getValueShortName = function(frame) local go, errorOrentity, claims, propertyID = parseInput(frame) if not go then return errorOrentity end local entity = errorOrentity -- if wiki-linked value output as link if possible local function labelHook (qnumber) local label local claimEntity = mw.wikibase.getEntity(qnumber) if claimEntity ~= nil then if claimEntity.claims.P1813 then for k2, v2 in pairs(claimEntity.claims.P1813) do if v2.mainsnak.datavalue.value.language == "en" then label = v2.mainsnak.datavalue.value.text end end end end if label == nil or label == "" then return nil end return label end return getValue(errorOrentity, claims, propertyID, ", ", labelHook); end -- This is used to get a value, or a comma separated list of them if multiple values exist -- from an arbitrary entry by using its QID. -- Use : {{#invoke:Wikidata|getValueFromID|<ID>|<Property>|FETCH_WIKIDATA}} -- E.g.: {{#invoke:Wikidata|getValueFromID|Q151973|P26|FETCH_WIKIDATA}} - to fetch value of 'spouse' (P26) from 'Richard Burton' (Q151973) -- Please use sparingly - this is an *expensive call*. p.getValueFromID = function(frame) local itemID = mw.text.trim(frame.args[1] or "") local propertyID = mw.text.trim(frame.args[2] or "") local input_parm = mw.text.trim(frame.args[3] or "") if input_parm == "FETCH_WIKIDATA" then local entity = mw.wikibase.getEntity(itemID) local claims if entity and entity.claims then claims = entity.claims[propertyID] end if claims then return getValue(entity, claims, propertyID, ", ") else return "" end else return input_parm end end local function getQualifier(frame, outputHook) local propertyID = mw.text.trim(frame.args[1] or "") local qualifierID = mw.text.trim(frame.args[2] or "") local input_parm = mw.text.trim(frame.args[3] or "") if input_parm == "FETCH_WIKIDATA" then local entity = mw.wikibase.getEntity() if entity.claims[propertyID] ~= nil then local out = {} for k, v in pairs(entity.claims[propertyID]) do for k2, v2 in pairs(v.qualifiers[qualifierID]) do if v2.snaktype == 'value' then out[#out + 1] = outputHook(v2); end end end return table.concat(out, ", "), true else return "", false end else return input_parm, false end end p.getQualifierValue = function(frame) local function outputValue(value) local qnumber = "Q" .. value.datavalue.value["numeric-id"] if (mw.wikibase.getSitelink(qnumber)) then return "[[" .. mw.wikibase.getSitelink(qnumber) .. "]]" else return "[[:d:" .. qnumber .. "|" ..qnumber .. "]]<abbr title='" .. i18n["errors"]["local-article-not-found"] .. "'>[*]</abbr>" end end return (getQualifier(frame, outputValue)) end -- This is used to get a value like 'male' (for property p21) which won't be linked and numbers without the thousand separators p.getRawValue = function(frame) local propertyID = mw.text.trim(frame.args[1] or "") local input_parm = mw.text.trim(frame.args[2] or "") if input_parm == "FETCH_WIKIDATA" then local entity = mw.wikibase.getEntityObject() local claims if entity and entity.claims then claims = entity.claims[propertyID] end if claims then local result = entity:formatPropertyValues(propertyID, mw.wikibase.entity.claimRanks).value -- if number type: remove thousand separators, bounds and units if (claims[1] and claims[1].mainsnak.snaktype == "value" and claims[1].mainsnak.datavalue.type == "quantity") then result = mw.ustring.gsub(result, "(%d),(%d)", "%1%2") result = mw.ustring.gsub(result, "(%d)±.*", "%1") end return result else return "" end else return input_parm end end -- getRawValue tarafından döndürülen sayısal değer için birim adını almak amacıyla kullanılır p.getUnits = function(frame) local go, errorOrentity, claims, propertyID = parseInput(frame) if not go then return errorOrentity end local entity = errorOrentity local result = entity:formatPropertyValues(propertyID, mw.wikibase.entity.claimRanks).value if isType(claims, "quantity") then result = mw.ustring.sub(result, mw.ustring.find(result, " ")+1, -1) end return result end -- getRawValue tarafından döndürülen sayısal değerle kullanmak üzere birimin QID'sini almak için kullanılır p.getUnitID = function(frame) local go, errorOrentity, claims = parseInput(frame) if not go then return errorOrentity end local entity = errorOrentity local result if isType(claims, "quantity") then -- get the url for the unit entry on Wikidata: result = claims[1].mainsnak.datavalue.value.unit -- and just reurn the last bit from "Q" to the end (which is the QID): result = mw.ustring.sub(result, mw.ustring.find(result, "Q"), -1) end return result end p.getRawQualifierValue = function(frame) local function outputHook(value) if value.datavalue.value["numeric-id"] then return mw.wikibase.getLabel("Q" .. value.datavalue.value["numeric-id"]) else return value.datavalue.value end end local ret, gotData = getQualifier(frame, outputHook) if gotData then ret = string.upper(string.sub(ret, 1, 1)) .. string.sub(ret, 2) end return ret end -- Bu, doğum tarihi (P569) vb. için bağlantı yapılmayacak bir tarih değeri almak amacıyla kullanılır -- Tarihler ve saatler ISO 8601 formatında saklanır (bir bakıma). -- Şu an için yerel formatDate(date, precision, timezone) işlevi zaman dilimini işlemez -- Bu yüzden aşağıda formatDate çağrısında sadece "Z" değeri sağlanacak: p.getDateValue = function(frame) local date_format = mw.text.trim(frame.args[3] or i18n["datetime"]["default-format"]) local date_addon = mw.text.trim(frame.args[4] or i18n["datetime"]["default-addon"]) local go, errorOrentity, claims = parseInput(frame) if not go then return errorOrentity end local entity = errorOrentity local out = {} for k, v in pairs(claims) do if v.mainsnak.datavalue.type == 'time' then local timestamp = v.mainsnak.datavalue.value.time local dateprecision = v.mainsnak.datavalue.value.precision -- Bir yıl şu şekilde saklanabilir: "+1872-00-00T00:00:00Z", -- burada işlenirken sanki "+1872-01-01T00:00:00Z"'nin bir gün öncesi gibi işlenir, -- ve bu 1871'in son günüdür, bu yüzden yıl yanlış olur. -- Bu nedenle ay 0, gün 0 zaman damgasını 1 Ocak olarak düzeltin: timestamp = timestamp:gsub("%-00%-00T", "-01-01T") out[#out + 1] = parseDateFull(timestamp, dateprecision, date_format, date_addon) end end return table.concat(out, ", ") end p.getQualifierDateValue = function(frame) local date_format = mw.text.trim(frame.args[4] or i18n["datetime"]["default-format"]) local date_addon = mw.text.trim(frame.args[5] or i18n["datetime"]["default-addon"]) local function outputHook(value) local timestamp = value.datavalue.value.time return parseDateValue(timestamp, date_format, date_addon) end return (getQualifier(frame, outputHook)) end -- Bu, belirli bir özelliğe sahip tüm resimleri almak için kullanılır, örneğin resim (P18), Gene Atlas Resmi (P692), vb. -- Parametreler | propertyID | value / FETCH_WIKIDATA / nil | ayraç (varsayılan=boşluk) | boyut (varsayılan=frameless) -- Her resim için seçilebilir boyut ve ayraçla standart wiki-işaretleme [[Dosya: Dosya Adı | boyut]] döndürür -- örneğin {{#invoke:Wikidata|getImages|P18|FETCH_WIKIDATA}} -- örneğin {{#invoke:Wikidata|getImages|P18|FETCH_WIKIDATA|<br>|250px}} -- Eğer seçilen bir özellik "commonsMedia" türünde değilse, boş metin döndürür. p.getImages = function(frame) local sep = mw.text.trim(frame.args[3] or " ") local imgsize = mw.text.trim(frame.args[4] or "frameless") local go, errorOrentity, claims = parseInput(frame) if not go then return errorOrentity end local entity = errorOrentity if (claims[1] and claims[1].mainsnak.datatype == "commonsMedia") then local out = {} for k, v in pairs(claims) do local filename = v.mainsnak.datavalue.value out[#out + 1] = "[[Dosya:" .. filename .. "|" .. imgsize .. "]]" end return table.concat(out, sep) else return "" end end -- Bu, 'A01.1.00.005' gibi TA98 (Terminologia Anatomica ilk baskı 1998) değerlerini almak için kullanılır (özellik P1323) -- daha sonra http://www.unifr.ch/ifaa/Public/EntryPage/TA98%20Tree/Entity%20TA98%20EN/01.1.00.005%20Entity%20TA98%20EN.htm bağlantısına bağlanır. -- doğrudan snakları kullanmak yerine yeni mw.wikibase çağrılarını kullanır -- formatPropertyValues, P1323 değerlerini ", " ile birleştirilmiş bir tablo olarak döndürdüğünden, döndürülen dizeyi oluşturmak için bunların bir tabloya ayrılması gerekmektedir p.getTAValue = function(frame) local ent = mw.wikibase.getEntity() local props = ent:formatPropertyValues('P1323') local out = {} local t = {} for k, v in pairs(props) do if k == 'value' then t = mw.text.split( v, ", ") for k2, v2 in pairs(t) do out[#out + 1] = "[https://ifaa.unifr.ch/Public/EntryPage/TA98%20Tree/Entity%20TA98%20EN/" .. string.sub(v2, 2) .. "%20Entity%20TA98%20EN.htm " .. v2 .. "]" end end end local ret = table.concat(out, "<br> ") if #ret == 0 then ret = "Invalid TA" end return ret end --[[ This is used to return an image legend from Wikidata image is property P18 image legend is property P2096 Call as {{#invoke:Wikidata |getImageLegend | <PARAMETER> | lang=<ISO-639code> |id=<QID>}} Returns PARAMETER, unless it is equal to "FETCH_WIKIDATA", from Item QID (expensive call) If QID is omitted or blank, the current article is used (not an expensive call) If lang is omitted, it uses the local wiki language, otherwise it uses the provided ISO-639 language code ISO-639: https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html#wp1252447 Ranks are: 'preferred' > 'normal' This returns the label from the first image with 'preferred' rank Or the label from the first image with 'normal' rank if preferred returns nothing Ranks: https://www.mediawiki.org/wiki/Extension:Wikibase_Client/Lua ]] p.getImageLegend = function(frame) -- look for named parameter id; if it's blank make it nil local id = frame.args.id if id and (#id == 0) then id = nil end -- look for named parameter lang -- it should contain a two-character ISO-639 language code -- if it's blank fetch the language of the local wiki local lang = frame.args.lang if (not lang) or (#lang < 2) then lang = mw.language.getContentLanguage().code end -- first unnamed parameter is the local parameter, if supplied local input_parm = mw.text.trim(frame.args[1] or "") if input_parm == "FETCH_WIKIDATA" then local ent = mw.wikibase.getEntity(id) local imgs if ent and ent.claims then imgs = ent.claims.P18 end local imglbl if imgs then -- look for an image with 'preferred' rank for k1, v1 in pairs(imgs) do if v1.rank == "preferred" and v1.qualifiers and v1.qualifiers.P2096 then local imglbls = v1.qualifiers.P2096 for k2, v2 in pairs(imglbls) do if v2.datavalue.value.language == lang then imglbl = v2.datavalue.value.text break end end end end -- if we don't find one, look for an image with 'normal' rank if (not imglbl) then for k1, v1 in pairs(imgs) do if v1.rank == "normal" and v1.qualifiers and v1.qualifiers.P2096 then local imglbls = v1.qualifiers.P2096 for k2, v2 in pairs(imglbls) do if v2.datavalue.value.language == lang then imglbl = v2.datavalue.value.text break end end end end end end return imglbl else return input_parm end end -- This is used to get the QIDs of all of the values of a property, as a comma separated list if multiple values exist -- Usage: {{#invoke:Wikidata |getPropertyIDs |<PropertyID> |FETCH_WIKIDATA}} -- Usage: {{#invoke:Wikidata |getPropertyIDs |<PropertyID> |<InputParameter> |qid=<QID>}} p.getPropertyIDs = function(frame) local go, errorOrentity, propclaims = parseInput(frame) if not go then return errorOrentity end local entity = errorOrentity -- if wiki-linked value collect the QID in a table if (propclaims[1] and propclaims[1].mainsnak.snaktype == "value" and propclaims[1].mainsnak.datavalue.type == "wikibase-entityid") then local out = {} for k, v in pairs(propclaims) do out[#out + 1] = "Q" .. v.mainsnak.datavalue.value["numeric-id"] end return table.concat(out, ", ") else -- not a wikibase-entityid, so return empty return "" end end -- returns the page id (Q...) of the current page or nothing of the page is not connected to Wikidata function p.pageId(frame) return mw.wikibase.getEntityIdForCurrentPage() end function p.claim(frame) local property = frame.args[1] or "" local id = frame.args["id"] local qualifierId = frame.args["qualifier"] local parameter = frame.args["parameter"] local list = frame.args["list"] local references = frame.args["references"] local showerrors = frame.args["showerrors"] local default = frame.args["default"] if default then showerrors = nil end -- get wikidata entity local entity = mw.wikibase.getEntity(id) if not entity then if showerrors then return printError("entity-not-found") else return default end end -- fetch the first claim of satisfying the given property local claims = findClaims(entity, property) if not claims or not claims[1] then if showerrors then return printError("property-not-found") else return default end end -- get initial sort indices local sortindices = {} for idx in pairs(claims) do sortindices[#sortindices + 1] = idx end -- sort by claim rank local comparator = function(a, b) local rankmap = { deprecated = 2, normal = 1, preferred = 0 } local ranka = rankmap[claims[a].rank or "normal"] .. string.format("%08d", a) local rankb = rankmap[claims[b].rank or "normal"] .. string.format("%08d", b) return ranka < rankb end table.sort(sortindices, comparator) local result local error if list then local value -- iterate over all elements and return their value (if existing) result = {} for idx in pairs(claims) do local claim = claims[sortindices[idx]] value, error = getValueOfClaim(claim, qualifierId, parameter) if not value and showerrors then value = error end if value and references then value = value .. getReferences(frame, claim) end result[#result + 1] = value end result = table.concat(result, list) else -- return first element local claim = claims[sortindices[1]] result, error = getValueOfClaim(claim, qualifierId, parameter) if result and references then result = result .. getReferences(frame, claim) end end if result then return result else if showerrors then return error else return default end end end -- look into entity object function p.ViewSomething(frame) local f = (frame.args[1] or frame.args.id) and frame or frame:getParent() local id = f.args.id if id and (#id == 0) then id = nil end local data = mw.wikibase.getEntity(id) if not data then return nil end local i = 1 while true do local index = f.args[i] if not index then if type(data) == "table" then return mw.text.jsonEncode(data, mw.text.JSON_PRESERVE_KEYS + mw.text.JSON_PRETTY) else return tostring(data) end end data = data[index] or data[tonumber(index)] if not data then return end i = i + 1 end end -- belirli bir vikinin site bağlantısını alma -- qid sağlanmazsa geçerli öğenin site bağlantısını alır function p.getSiteLink(frame) local qid = frame.args.qid if qid == "" then qid = nil end local f = mw.text.trim( frame.args[1] or "") local entity = mw.wikibase.getEntity(qid) if not entity then return end local link = entity:getSitelink( f ) if not link then return end return link end function p.Dump(frame) local f = (frame.args[1] or frame.args.id) and frame or frame:getParent() local data = mw.wikibase.getEntity(f.args.id) if not data then return i18n.warnDump end local i = 1 while true do local index = f.args[i] if not index then return "<pre>"..mw.dumpObject(data).."</pre>".. i18n.warnDump end data = data[index] or data[tonumber(index)] if not data then return i18n.warnDump end i = i + 1 end end function p.formatStatements( frame ) return p.formatProperty( frame ) end return p
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Modul belgelemesi gor degistir gecmis temizle Bu modul su Lua modulunu kullaniyor Modul i18nCok fazla sayfada kullanilan bu modul korumaya alinmistir Vandalizm veya istem disi hatalar pek cok sayfayi etkileyeceginden ve en ufak duzenleme bile sunuculara onemli bir yuk bindirebileceginden korumaya tabidir Methods The module Vikiveri contains the following methods that allow the calling script to retrieve the value for any property from Vikiveri by supplying the property ID as the first parameter getValue Returns wiki linked values if applicable All other values will be output similar to property except that if values with preferred rank exist then only they are returned Unlike formatStatements from ru Modul Vikiveri getValue does not yet pick up any references see getRawValue Returns non linked property values and numbers with the thousand separator It also returns the plain numeric value of a property which is a quantity All other values will be output similar to property including normal values even if preferred values exist getDateValue Special method to return formatted dates The default date format is day month year an optional third parameter can be added for other date formats for month day year add mdy for month year add my for year only add y A further optional parameter which must be fourth such as BCE may be added to override the default BC that is suffixed for dates BC getImages Returns all of the images of a particular property e g image P18 Gene Atlas Image P692 etc Parameters are propertyID value FETCH Vikiveri nil separator default space size default 220px The returned text will be in the format File Filename size for each image with a selectable size and separator which may be html If a property is supplied that is not of type commonsMedia it will return empty text getUnits This takes a propertyID which is a quantity as the first parameter and returns the name of the units that the property is using on the current page It returns empty if the property is not a quantity type or if the value is not set The second parameter may be used to override fetching from Vikiveri if it is anything other than FETCH Vikiveri getUnitID This takes a propertyID which is a quantity as the first parameter and returns the QID of the units that the property is using on the current page It returns empty if the property is not a quantity type or if the value is not set The second parameter may be used to override fetching from Vikiveri if it is anything other than FETCH Vikiveri Vikiveri qualifier values if present can be retrieved by the following methods getQualifierValue returns only wiki linked values if applicable getRawQualifierValue returns non linked values getQualifierDateValue returns formatted dates If the property is not defined in Vikiveri for the article that invokes this code then an empty string is returned Other methods pageId returns the Vikiveri id Q of the current page or nothing if the page is not connected to Vikiveri getTAValue gets the TA98 Terminologia Anatomica first edition 1998 values for property P1323 It takes no parameters and constructs its output as a list with each value linked to an external resource This is an exemplar for writing calls that need to return external links ViewSomething gets anything in the structured data including labels descriptions references and interwiki links See 1 getSiteLink gets name of a page in given in argument wiki like enwikiquote for English Wikiquote Dump invoke Vikiveri Dump claims spies the structured data It uses the same arguments as ViewSomething Try this with preview only to see results That helps you a lot in developing Lua scripts that access the data If used without arguments it dumps everything including labels descriptions references and interwiki links See 2 getImageLegend returns an image legend image is property P18 image legend is property P2096 Call as invoke Vikiveri getImageLegend lt PARAMETER gt lang lt ISO 639code gt id lt QID gt Returns PARAMETER unless it is equal to FETCH Vikiveri from Item QID expensive call If QID is omitted or blank the current article is used not an expensive call If lang is omitted it uses the local wiki language otherwise it uses the provided ISO 639 language code The label is returned from the first image with preferred rank or from the first image with normal rank if no image has preferred rank getValueShortName returns the same data as getValue but utilizes the property short name as the label if available This allows for piped links to use a shorter label where preferred If short name is not set on the item the normal label is used Arbitrary Access As of 16 September 2015 it is now possible to fetch data from other articles by using their QID The following call invoke Vikiveri getValueFromID lt QID gt lt Property gt FETCH Vikiveri will do the same as getValue but takes an extra parameter which is the QID of the Vikiveri item that you want to get the property value from For example invoke Vikiveri getValueFromID Q151973 P26 FETCH Vikiveri will fetch a list of the linked values for spouse P26 from Richard Burton Q151973 from anywhere in the English Wikipedia This means that testing environments may be set up in user space but remember that these calls are classed as expensive so please use them as sparingly as possible Parameters For the generalized case getValue two unnamed parameters are supplied The first is the ID of the property that is to be retrieved e g P19 for birthplace or P26 for spouse The second may be null FETCH Vikiveri or any other string which becomes the returned value For the generalized unlinked case getRawValue two unnamed parameters are supplied The first is the ID of the property that is to be retrieved e g P21 for gender The second may be null FETCH Vikiveri or any other string which becomes the returned value For the generalized date case getDateValue three unnamed parameters are supplied The first is the ID of the property that is to be retrieved e g P569 for date of birth The second may be null FETCH Vikiveri or any other string which becomes the returned value The third is the format that the date should be returned in either dmy mdy my or y Please note that lower case parameters are no longer supported by the wikibase call p123 so please check that upper case like P123 is used if problems should arise Usage Example spouse P26 invoke Vikiveri getValue P26 returns nothing so suppresses the display of spouse in an infobox invoke Vikiveri getValue P26 FETCH Vikiveri returns the linked value s of property P26 spouse stored in Vikiveri for the corresponding article e g for article Bill Clinton it returns Hillary Clinton invoke Vikiveri getValue P26 Hillary Rodham Clinton returns Hillary Rodham Clinton allowing an infobox to use a local value rather than the value stored in Vikiveri Example in Infobox template Inside an infobox definition it may be called like this data55 invoke Vikiveri getValue P26 spouse FETCH Vikiveri which causes the infobox to not display spouse if the infobox parameter spouse is set to be blank as spouse display the linked value s from Vikiveri if the infobox parameter spouse is not supplied display the local infobox parameter spouse if it is supplied e g spouse Hillary Rodham Clinton Optionally it could be called as data55 invoke Vikiveri getValue P26 spouse which causes the infobox to not display spouse if the infobox parameter spouse is set to be blank as spouse not display spouse if the infobox parameter spouse is not supplied display the local infobox parameter spouse if it is supplied e g spouse Hillary Rodham Clinton display the linked value s from Vikiveri if the infobox parameter is locally set to FETCH Vikiveri See for a modification that allows fields on a per article basis to be blacklisted so that they never display It also allows the editor to specify on a per article basis which fields may be automatically fetched from Vikiveri when local parameter is supplied the default is none allowing an infobox to be modified to accept Vikiveri without any change in the articles using the infobox until the functionality is enabled in the article Example birth place This works in just the same way as the calls above invoke Vikiveri getValue P19 returns nothing so suppresses the display of birth place in an infobox invoke Vikiveri getValue P19 FETCH Vikiveri returns the linked value s of property P19 place of birth stored in Vikiveri for the corresponding article e g for article Bill Clinton it returns Hope Arkansas invoke Vikiveri getValue P19 Hope Arkansas Hope returns Hope allowing an infobox to use a local value rather than the value stored in Vikiveri Example gender We don t want the returned value linked so use invoke Vikiveri getRawValue P21 FETCH Vikiveri Example date of birth If we want the date of birth in dmy format we use invoke Vikiveri getDateValue P569 FETCH Vikiveri dmy If we want the date of birth in mdy format we use invoke Vikiveri getDateValue P569 FETCH Vikiveri mdy If we want a year of birth we use invoke Vikiveri getDateValue P569 FETCH Vikiveri y If we want a year of birth that may be BC but should read BCE we use invoke Vikiveri getDateValue P569 FETCH Vikiveri y BCE Example Linking to Vikiveri item Use the following code to just retrieve the Q ID invoke Vikiveri pageId Linking to Vikiveri used the usual Wiki markup d invoke Vikiveri pageId Name of Link Example Linking to another wiki page Use code like this to link to another wiki English Wikivoyage in the example voy invoke Vikiveri getSiteLink enwikivoyage Name of Link Testing Testing spouse Copy and paste the following into any article and preview it please don t save invoke Vikiveri getValue P26 invoke Vikiveri getValue P26 FETCH Vikiveri invoke Vikiveri getValue P26 Hillary Rodham Clinton In Bill Clinton you should get Hillary Clinton Hillary Rodham Clinton In Barack Obama you should get Michelle Obama Hillary Rodham Clinton In Richard Burton you should get Elizabeth Taylor Elizabeth Taylor Hillary Rodham Clinton In Franz Kafka you should get Hillary Rodham ClintonTesting birthplace Copy and paste the following into any article and preview it please don t save invoke Vikiveri getValue P19 invoke Vikiveri getValue P19 FETCH Vikiveri invoke Vikiveri getValue P19 Newport Try and check that the Vikiveri call correctly disambiguates Testing getValue getRawValue and getDateValue Copy and paste the following into any article and preview it please don t save invoke Vikiveri getValue P19 FETCH Vikiveri invoke Vikiveri getValue P26 FETCH Vikiveri invoke Vikiveri getValue P27 FETCH Vikiveri invoke Vikiveri getValue P140 FETCH Vikiveri invoke Vikiveri getRawValue P21 FETCH Vikiveri invoke Vikiveri getDateValue P569 FETCH Vikiveri dmy invoke Vikiveri getDateValue P569 FETCH Vikiveri mdy invoke Vikiveri getDateValue P569 FETCH Vikiveri y This should return the Vikiveri values for birthplace spouse citizenship religion gender date of birth twice and year of birth if they exist The dob is first in dmy format and then in mdy Testing dates BC BCE Copy and paste the following into a short section of article such as Horace See also and preview it please don t save invoke Vikiveri getDateValue P569 FETCH Vikiveri y invoke Vikiveri getDateValue P569 FETCH Vikiveri y BCE This should return 65 BC and 65 BCE respectively Yukaridaki belgeleme icerigi Modul Vikiveri belge sayfasindan yansitilmaktadir degistir gecmis Kullanicilar denemelerini bu sablonun deneme tahtasi olustur yansitma ve test senaryosu olustur sayfalarinda yapabilirler Lutfen kategorileri belge alt sayfasina ekleyin Bu modul ile ilgili alt sayfalar icin buraya tiklayiniz vim set noexpandtab ft lua ts 4 sw 4 require strict local p local debug false module local variables and functions local wiki langcode mw language getContentLanguage code internationalisation local i18n errors property not found Ozellik bulunamadi entity not found Vikiveri varligi bulunamadi unknown claim type Bilinmeyen talep turu unknown entity type Bilinmeyen varlik turu qualifier not found Niteleyici bulunamadi site not found Wikimedia projesi bulunamadi unknown datetime format Bilinmeyen datetime bicimi local article not found Makale bu vikide henuz mevcut degil datetime 1 is a placeholder for the actual number 0 1 milyar yil precision billion years 1 100 milyon yil precision hundred million years 2 10 milyon yil precision ten million years 3 1 milyon yil precision million years 4 100 000 yil precision hundred thousand years 5 10 000 yil precision ten thousand years 6 1 milenyum precision millennium 7 1 yuzyil precision century 8 1lar precision decade the following use the format of time parser function 9 Y precision year 10 F Y precision month 11 j F Y precision day 12 j F Y ga precision hour 13 j F Y g ia precision minute 14 j F Y g i sa precision second beforenow 1 MO how to format negative numbers for precisions 0 to 5 afternow 1 MS how to format positive numbers for precisions 0 to 5 bc MO 1 how print negative years ad 1 how print positive years the following are for function getDateValue and getQualifierDateValue default format dmy default value of the 3 getDateValue or 4 getQualifierDateValue argument default addon MO default value of the 4 getDateValue or 5 getQualifierDateValue argument prefix addon false set to true for languages put BC in front of the datetime string or the addon will be suffixed addon sep separator between datetime string and addon or inverse format options of the 3rd argument mdy F j Y my F Y y Y dmy j F Y ymd Y m d ym Y m monolingualtext lt span lang language gt text lt span gt warnDump Kategori Vikiveri modulunden cagrilan Dokum islevi ordinal 1 2 3 default if wiki langcode en then require Module i18n loadI18n Module Wikidata i18n i18n got idea from w Module Wd local module title if nil then module title mw getCurrentFrame getTitle else module title end require Modul i18n loadI18n module title i18n i18n end this function needs to be internationalised along with the above takes cardinal numer as a numeric and returns the ordinal as a string we need three exceptions in English for 1st 2nd 3rd 21st 31st etc local function makeOrdinal cardinal local ordsuffix i18n ordinal default if cardinal 10 1 then ordsuffix i18n ordinal 1 elseif cardinal 10 2 then ordsuffix i18n ordinal 2 elseif cardinal 10 3 then ordsuffix i18n ordinal 3 end In English 1 21 31 etc use st but 11 111 etc use th similarly for 12 and 13 etc if cardinal 100 11 or cardinal 100 12 or cardinal 100 13 then ordsuffix i18n ordinal default end return tostring cardinal ordsuffix end local function printError code return lt span class error gt i18n errors code or code lt span gt end local function parseDateFormat f timestamp addon prefix addon addon sep local year suffix local tstr local lang obj mw language new wiki langcode local f parts mw text split f Y true for idx f part in pairs f parts do year suffix if string match f part x mijkot then for non Gregorian year f part f part Y elseif idx lt f parts then supress leading zeros in year year suffix lang obj formatDate Y timestamp year suffix string gsub year suffix 0 1 end tstr tstr lang obj formatDate f part timestamp year suffix end if addon and prefix addon then return addon addon sep tstr elseif addon then return tstr addon sep addon else return tstr end end local function parseDateValue timestamp date format date addon local prefix addon i18n datetime prefix addon local addon sep i18n datetime addon sep local addon check for negative date if string sub timestamp 1 1 then timestamp string sub timestamp 2 addon date addon end local date format i18n datetime format date format if date format nil then return parseDateFormat date format timestamp addon prefix addon addon sep else return printError unknown datetime format end end This local function combines the year month day BC BCE handling of parseDateValue with the millennium century decade handling of formatDate local function parseDateFull timestamp precision date format date addon local prefix addon i18n datetime prefix addon local addon sep i18n datetime addon sep local addon check for negative date if string sub timestamp 1 1 then timestamp string sub timestamp 2 addon date addon end get the next four characters after the should be the year now in all cases ok so this is dirty but let s get it working first local intyear tonumber string sub timestamp 2 5 if intyear 0 and precision lt 9 then return end precision is 10000 years or more if precision lt 5 then local factor 10 5 precision 4 local y2 math ceil math abs intyear factor local relative mw ustring gsub i18n datetime precision 1 tostring y2 if addon then negative date relative mw ustring gsub i18n datetime beforenow 1 relative else relative mw ustring gsub i18n datetime afternow 1 relative end return relative end precision is decades 8 centuries 7 and millennia 6 local era card if precision 6 then card math floor intyear 1 1000 1 era mw ustring gsub i18n datetime 6 1 makeOrdinal card end if precision 7 then card math floor intyear 1 100 1 era mw ustring gsub i18n datetime 7 1 makeOrdinal card end if precision 8 then era mw ustring gsub i18n datetime 8 1 tostring math floor math abs intyear 10 10 end if era then if addon then era mw ustring gsub mw ustring gsub i18n datetime bc 1 era else era mw ustring gsub mw ustring gsub i18n datetime ad 1 era end return era end local date format i18n datetime format date format if date format nil then check for precision is year and override supplied date format if precision 9 then date format i18n datetime 9 end return parseDateFormat date format timestamp addon prefix addon addon sep else return printError unknown datetime format end end the qualifiers and snaks field have a respective qualifiers order and snaks order field use these as the second parameter and this function instead of the built in pairs function to iterate over all qualifiers and snaks in the intended order local function orderedpairs array order if not order then return pairs array end return iterator function local i 0 return function i i 1 if order i then return order i array order i end end end precision 0 billion years 1 hundred million years 6 millennia 7 century 8 decade 9 year 10 month 11 day 12 hour 13 minute 14 second local function normalizeDate date date mw text trim date extract year local yearstr mw ustring match date d local year tonumber yearstr remove leading zeros of year return year mw ustring sub date yearstr 1 year end local function formatDate date precision timezone precision precision or 11 local date year normalizeDate date if year 0 and precision lt 9 then return end precision is 10000 years or more if precision lt 5 then local factor 10 5 precision 4 local y2 math ceil math abs year factor local relative mw ustring gsub i18n datetime precision 1 tostring y2 if year lt 0 then relative mw ustring gsub i18n datetime beforenow 1 relative else relative mw ustring gsub i18n datetime afternow 1 relative end return relative end precision is decades centuries and millennia local era if precision 6 then era mw ustring gsub i18n datetime 6 1 tostring math floor math abs year 1 1000 1 end if precision 7 then era mw ustring gsub i18n datetime 7 1 tostring math floor math abs year 1 100 1 end if precision 8 then era mw ustring gsub i18n datetime 8 1 tostring math floor math abs year 10 10 end if era then if year lt 0 then era mw ustring gsub mw ustring gsub i18n datetime bc 1 era elseif year gt 0 then era mw ustring gsub mw ustring gsub i18n datetime ad 1 era end return era end precision is year if precision 9 then return year end precision is less than years if precision gt 9 then the following code replaces the UTC suffix with the given negated timezone to convert the global time to the given local time timezone tonumber timezone if timezone and timezone 0 then timezone timezone timezone string format 2d 2d timezone 60 timezone 60 if timezone 1 then timezone timezone end date mw text trim date Z timezone end local formatstr i18n datetime precision if year 0 then formatstr mw ustring gsub formatstr i18n datetime 9 elseif year lt 0 then Mediawiki formatDate doesn t support negative years date mw ustring sub date 2 formatstr mw ustring gsub formatstr i18n datetime 9 mw ustring gsub i18n datetime bc 1 i18n datetime 9 elseif year gt 0 and i18n datetime ad 1 then formatstr mw ustring gsub formatstr i18n datetime 9 mw ustring gsub i18n datetime ad 1 i18n datetime 9 end return mw language new wiki langcode formatDate formatstr date end end local function printDatavalueEntity data parameter data fields entity type string numeric id int Wikidata id local id if data entity type item then id Q data numeric id elseif data entity type property then id P data numeric id else return printError unknown entity type end if parameter then if parameter link then local linkTarget mw wikibase getSitelink id local linkName mw wikibase getLabel id if linkTarget then if there is a local Wikipedia article link to it using the label or the article title return linkTarget linkName or linkTarget else if there is no local Wikipedia article output the label or link to the Wikidata object to let the user input a proper label if linkName then return linkName else return d id id end end else return data parameter end else return mw wikibase getLabel id or id end end local function printDatavalueTime data parameter data fields time ISO 8601 time timezone int in minutes before int after int precision int calendarmodel wikidata URI precision 0 billion years 1 hundred million years 6 millennia 7 century 8 decade 9 year 10 month 11 day 12 hour 13 minute 14 second calendarmodel e g http www wikidata org entity Q1985727 for the proleptic Gregorian calendar or http www wikidata org wiki Q11184 for the Julian calendar if parameter then if parameter calendarmodel then data calendarmodel mw ustring match data calendarmodel Q d extract entity id from the calendar model URI elseif parameter time then data time normalizeDate data time end return data parameter else return formatDate data time data precision data timezone end end local function printDatavalueMonolingualText data parameter data fields language string text string if parameter then return data parameter else local result mw ustring gsub mw ustring gsub i18n monolingualtext language data language text data text return result end end local function findClaims entity property if not property or not entity or not entity claims then return end if mw ustring match property P d then if the property is given by an id P access the claim list by this id return entity claims property else property mw wikibase resolvePropertyId property if not property then return end return entity claims property end end local function getSnakValue snak parameter if snak snaktype value then call the respective snak parser if snak datavalue type string then return snak datavalue value elseif snak datavalue type globecoordinate then return printDatavalueCoordinate snak datavalue value parameter elseif snak datavalue type quantity then return printDatavalueQuantity snak datavalue value parameter elseif snak datavalue type time then return printDatavalueTime snak datavalue value parameter elseif snak datavalue type wikibase entityid then return printDatavalueEntity snak datavalue value parameter elseif snak datavalue type monolingualtext then return printDatavalueMonolingualText snak datavalue value parameter end end return mw wikibase renderSnak snak end local function getQualifierSnak claim qualifierId a snak is Wikidata terminology for a typed key value pair a claim consists of a main snak holding the main information of this claim as well as a list of attribute snaks and a list of references snaks if qualifierId then search the attribute snak with the given qualifier as key if claim qualifiers then local qualifier claim qualifiers qualifierId if qualifier then return qualifier 1 end end return nil printError qualifier not found else otherwise return the main snak return claim mainsnak end end local function getValueOfClaim claim qualifierId parameter local error local snak snak error getQualifierSnak claim qualifierId if snak then return getSnakValue snak parameter else return nil error end end local function getReferences frame claim local result traverse through all references for ref in pairs claim references or do local refparts traverse through all parts of the current reference for snakkey snakval in orderedpairs claim references ref snaks or claim references ref snaks order do if refparts then refparts refparts else refparts end output the label of the property of the reference part e g imported from for P143 refparts refparts tostring mw wikibase getLabel snakkey output all values of this reference part e g German Wikipedia and English Wikipedia if the referenced claim was imported from both sites for snakidx 1 snakval do if snakidx gt 1 then refparts refparts end refparts refparts getSnakValue snakval snakidx end end if refparts then result result frame extensionTag ref refparts end end return result end local function parseInput frame local qid frame args qid if qid and qid 0 then qid nil end local propertyID mw text trim frame args 1 or local input parm mw text trim frame args 2 or if input parm FETCH WIKIDATA then return false input parm nil nil end local entity mw wikibase getEntity qid local claims if entity and entity claims then claims entity claims propertyID if not claims then return false nil nil end else return false nil nil end return true entity claims propertyID end local function isType claims type return claims 1 and claims 1 mainsnak snaktype value and claims 1 mainsnak datavalue type type end local function getValue entity claims propertyID delim labelHook if labelHook nil then labelHook function qnumber return nil end end if isType claims wikibase entityid then local out for k v in pairs claims do local qnumber Q v mainsnak datavalue value numeric id local sitelink mw wikibase getSitelink qnumber local label labelHook qnumber or mw wikibase getLabel qnumber or qnumber if sitelink then out out 1 sitelink label else out out 1 d qnumber label lt abbr title i18n errors local article not found gt lt abbr gt end end return table concat out delim else just return best values return entity formatPropertyValues propertyID value end end module global functions if debug then function p inspectI18n frame local val i18n for key in pairs frame args do key mw text trim key val val key end return val end end function p descriptionIn frame local langcode frame args 1 local id frame args 2 verilen dilde veya bu Vikipedi sitesinin varsayilan dilinde bir Vikiveri varliginin aciklamasini dondurur return mw wikibase getEntity id getDescription langcode or wiki langcode end function p labelIn frame local langcode frame args 1 local id frame args 2 verilen dilde veya bu Vikipedi sitesinin varsayilan dilinde bir Vikiveri varliginin etiketini dondurur return mw wikibase getEntity id getLabel langcode or wiki langcode end Bir degeri almak veya birden fazla deger varsa virgulle ayrilmis bir liste almak icin kullanilir p getValue function frame local delimdefault internationalise later local delim frame args delimiter or delim string gsub delim if delim 0 then delim delimdefault end local go errorOrentity claims propertyID parseInput frame if not go then return errorOrentity end return getValue errorOrentity claims propertyID delim end Yukaridakiyle ayni ancak mevcutsa etiket icin kisa ad ozelligini kullanir p getValueShortName function frame local go errorOrentity claims propertyID parseInput frame if not go then return errorOrentity end local entity errorOrentity if wiki linked value output as link if possible local function labelHook qnumber local label local claimEntity mw wikibase getEntity qnumber if claimEntity nil then if claimEntity claims P1813 then for k2 v2 in pairs claimEntity claims P1813 do if v2 mainsnak datavalue value language en then label v2 mainsnak datavalue value text end end end end if label nil or label then return nil end return label end return getValue errorOrentity claims propertyID labelHook end This is used to get a value or a comma separated list of them if multiple values exist from an arbitrary entry by using its QID Use invoke Wikidata getValueFromID lt ID gt lt Property gt FETCH WIKIDATA E g invoke Wikidata getValueFromID Q151973 P26 FETCH WIKIDATA to fetch value of spouse P26 from Richard Burton Q151973 Please use sparingly this is an expensive call p getValueFromID function frame local itemID mw text trim frame args 1 or local propertyID mw text trim frame args 2 or local input parm mw text trim frame args 3 or if input parm FETCH WIKIDATA then local entity mw wikibase getEntity itemID local claims if entity and entity claims then claims entity claims propertyID end if claims then return getValue entity claims propertyID else return end else return input parm end end local function getQualifier frame outputHook local propertyID mw text trim frame args 1 or local qualifierID mw text trim frame args 2 or local input parm mw text trim frame args 3 or if input parm FETCH WIKIDATA then local entity mw wikibase getEntity if entity claims propertyID nil then local out for k v in pairs entity claims propertyID do for k2 v2 in pairs v qualifiers qualifierID do if v2 snaktype value then out out 1 outputHook v2 end end end return table concat out true else return false end else return input parm false end end p getQualifierValue function frame local function outputValue value local qnumber Q value datavalue value numeric id if mw wikibase getSitelink qnumber then return mw wikibase getSitelink qnumber else return d qnumber qnumber lt abbr title i18n errors local article not found gt lt abbr gt end end return getQualifier frame outputValue end This is used to get a value like male for property p21 which won t be linked and numbers without the thousand separators p getRawValue function frame local propertyID mw text trim frame args 1 or local input parm mw text trim frame args 2 or if input parm FETCH WIKIDATA then local entity mw wikibase getEntityObject local claims if entity and entity claims then claims entity claims propertyID end if claims then local result entity formatPropertyValues propertyID mw wikibase entity claimRanks value if number type remove thousand separators bounds and units if claims 1 and claims 1 mainsnak snaktype value and claims 1 mainsnak datavalue type quantity then result mw ustring gsub result d d 1 2 result mw ustring gsub result d 1 end return result else return end else return input parm end end getRawValue tarafindan dondurulen sayisal deger icin birim adini almak amaciyla kullanilir p getUnits function frame local go errorOrentity claims propertyID parseInput frame if not go then return errorOrentity end local entity errorOrentity local result entity formatPropertyValues propertyID mw wikibase entity claimRanks value if isType claims quantity then result mw ustring sub result mw ustring find result 1 1 end return result end getRawValue tarafindan dondurulen sayisal degerle kullanmak uzere birimin QID sini almak icin kullanilir p getUnitID function frame local go errorOrentity claims parseInput frame if not go then return errorOrentity end local entity errorOrentity local result if isType claims quantity then get the url for the unit entry on Wikidata result claims 1 mainsnak datavalue value unit and just reurn the last bit from Q to the end which is the QID result mw ustring sub result mw ustring find result Q 1 end return result end p getRawQualifierValue function frame local function outputHook value if value datavalue value numeric id then return mw wikibase getLabel Q value datavalue value numeric id else return value datavalue value end end local ret gotData getQualifier frame outputHook if gotData then ret string upper string sub ret 1 1 string sub ret 2 end return ret end Bu dogum tarihi P569 vb icin baglanti yapilmayacak bir tarih degeri almak amaciyla kullanilir Tarihler ve saatler ISO 8601 formatinda saklanir bir bakima Su an icin yerel formatDate date precision timezone islevi zaman dilimini islemez Bu yuzden asagida formatDate cagrisinda sadece Z degeri saglanacak p getDateValue function frame local date format mw text trim frame args 3 or i18n datetime default format local date addon mw text trim frame args 4 or i18n datetime default addon local go errorOrentity claims parseInput frame if not go then return errorOrentity end local entity errorOrentity local out for k v in pairs claims do if v mainsnak datavalue type time then local timestamp v mainsnak datavalue value time local dateprecision v mainsnak datavalue value precision Bir yil su sekilde saklanabilir 1872 00 00T00 00 00Z burada islenirken sanki 1872 01 01T00 00 00Z nin bir gun oncesi gibi islenir ve bu 1871 in son gunudur bu yuzden yil yanlis olur Bu nedenle ay 0 gun 0 zaman damgasini 1 Ocak olarak duzeltin timestamp timestamp gsub 00 00T 01 01T out out 1 parseDateFull timestamp dateprecision date format date addon end end return table concat out end p getQualifierDateValue function frame local date format mw text trim frame args 4 or i18n datetime default format local date addon mw text trim frame args 5 or i18n datetime default addon local function outputHook value local timestamp value datavalue value time return parseDateValue timestamp date format date addon end return getQualifier frame outputHook end Bu belirli bir ozellige sahip tum resimleri almak icin kullanilir ornegin resim P18 Gene Atlas Resmi P692 vb Parametreler propertyID value FETCH WIKIDATA nil ayrac varsayilan bosluk boyut varsayilan frameless Her resim icin secilebilir boyut ve ayracla standart wiki isaretleme Dosya Dosya Adi boyut dondurur ornegin invoke Wikidata getImages P18 FETCH WIKIDATA ornegin invoke Wikidata getImages P18 FETCH WIKIDATA lt br gt 250px Eger secilen bir ozellik commonsMedia turunde degilse bos metin dondurur p getImages function frame local sep mw text trim frame args 3 or local imgsize mw text trim frame args 4 or frameless local go errorOrentity claims parseInput frame if not go then return errorOrentity end local entity errorOrentity if claims 1 and claims 1 mainsnak datatype commonsMedia then local out for k v in pairs claims do local filename v mainsnak datavalue value out out 1 Dosya filename imgsize end return table concat out sep else return end end Bu A01 1 00 005 gibi TA98 Terminologia Anatomica ilk baski 1998 degerlerini almak icin kullanilir ozellik P1323 daha sonra http www unifr ch ifaa Public EntryPage TA98 20Tree Entity 20TA98 20EN 01 1 00 005 20Entity 20TA98 20EN htm baglantisina baglanir dogrudan snaklari kullanmak yerine yeni mw wikibase cagrilarini kullanir formatPropertyValues P1323 degerlerini ile birlestirilmis bir tablo olarak dondurdugunden dondurulen dizeyi olusturmak icin bunlarin bir tabloya ayrilmasi gerekmektedir p getTAValue function frame local ent mw wikibase getEntity local props ent formatPropertyValues P1323 local out local t for k v in pairs props do if k value then t mw text split v for k2 v2 in pairs t do out out 1 https ifaa unifr ch Public EntryPage TA98 20Tree Entity 20TA98 20EN string sub v2 2 20Entity 20TA98 20EN htm v2 end end end local ret table concat out lt br gt if ret 0 then ret Invalid TA end return ret end This is used to return an image legend from Wikidata image is property P18 image legend is property P2096 Call as invoke Wikidata getImageLegend lt PARAMETER gt lang lt ISO 639code gt id lt QID gt Returns PARAMETER unless it is equal to FETCH WIKIDATA from Item QID expensive call If QID is omitted or blank the current article is used not an expensive call If lang is omitted it uses the local wiki language otherwise it uses the provided ISO 639 language code ISO 639 https docs oracle com cd E13214 01 wli docs92 xref xqisocodes html wp1252447 Ranks are preferred gt normal This returns the label from the first image with preferred rank Or the label from the first image with normal rank if preferred returns nothing Ranks https www mediawiki org wiki Extension Wikibase Client Lua p getImageLegend function frame look for named parameter id if it s blank make it nil local id frame args id if id and id 0 then id nil end look for named parameter lang it should contain a two character ISO 639 language code if it s blank fetch the language of the local wiki local lang frame args lang if not lang or lang lt 2 then lang mw language getContentLanguage code end first unnamed parameter is the local parameter if supplied local input parm mw text trim frame args 1 or if input parm FETCH WIKIDATA then local ent mw wikibase getEntity id local imgs if ent and ent claims then imgs ent claims P18 end local imglbl if imgs then look for an image with preferred rank for k1 v1 in pairs imgs do if v1 rank preferred and v1 qualifiers and v1 qualifiers P2096 then local imglbls v1 qualifiers P2096 for k2 v2 in pairs imglbls do if v2 datavalue value language lang then imglbl v2 datavalue value text break end end end end if we don t find one look for an image with normal rank if not imglbl then for k1 v1 in pairs imgs do if v1 rank normal and v1 qualifiers and v1 qualifiers P2096 then local imglbls v1 qualifiers P2096 for k2 v2 in pairs imglbls do if v2 datavalue value language lang then imglbl v2 datavalue value text break end end end end end end return imglbl else return input parm end end This is used to get the QIDs of all of the values of a property as a comma separated list if multiple values exist Usage invoke Wikidata getPropertyIDs lt PropertyID gt FETCH WIKIDATA Usage invoke Wikidata getPropertyIDs lt PropertyID gt lt InputParameter gt qid lt QID gt p getPropertyIDs function frame local go errorOrentity propclaims parseInput frame if not go then return errorOrentity end local entity errorOrentity if wiki linked value collect the QID in a table if propclaims 1 and propclaims 1 mainsnak snaktype value and propclaims 1 mainsnak datavalue type wikibase entityid then local out for k v in pairs propclaims do out out 1 Q v mainsnak datavalue value numeric id end return table concat out else not a wikibase entityid so return empty return end end returns the page id Q of the current page or nothing of the page is not connected to Wikidata function p pageId frame return mw wikibase getEntityIdForCurrentPage end function p claim frame local property frame args 1 or local id frame args id local qualifierId frame args qualifier local parameter frame args parameter local list frame args list local references frame args references local showerrors frame args showerrors local default frame args default if default then showerrors nil end get wikidata entity local entity mw wikibase getEntity id if not entity then if showerrors then return printError entity not found else return default end end fetch the first claim of satisfying the given property local claims findClaims entity property if not claims or not claims 1 then if showerrors then return printError property not found else return default end end get initial sort indices local sortindices for idx in pairs claims do sortindices sortindices 1 idx end sort by claim rank local comparator function a b local rankmap deprecated 2 normal 1 preferred 0 local ranka rankmap claims a rank or normal string format 08d a local rankb rankmap claims b rank or normal string format 08d b return ranka lt rankb end table sort sortindices comparator local result local error if list then local value iterate over all elements and return their value if existing result for idx in pairs claims do local claim claims sortindices idx value error getValueOfClaim claim qualifierId parameter if not value and showerrors then value error end if value and references then value value getReferences frame claim end result result 1 value end result table concat result list else return first element local claim claims sortindices 1 result error getValueOfClaim claim qualifierId parameter if result and references then result result getReferences frame claim end end if result then return result else if showerrors then return error else return default end end end look into entity object function p ViewSomething frame local f frame args 1 or frame args id and frame or frame getParent local id f args id if id and id 0 then id nil end local data mw wikibase getEntity id if not data then return nil end local i 1 while true do local index f args i if not index then if type data table then return mw text jsonEncode data mw text JSON PRESERVE KEYS mw text JSON PRETTY else return tostring data end end data data index or data tonumber index if not data then return end i i 1 end end belirli bir vikinin site baglantisini alma qid saglanmazsa gecerli ogenin site baglantisini alir function p getSiteLink frame local qid frame args qid if qid then qid nil end local f mw text trim frame args 1 or local entity mw wikibase getEntity qid if not entity then return end local link entity getSitelink f if not link then return end return link end function p Dump frame local f frame args 1 or frame args id and frame or frame getParent local data mw wikibase getEntity f args id if not data then return i18n warnDump end local i 1 while true do local index f args i if not index then return lt pre gt mw dumpObject data lt pre gt i18n warnDump end data data index or data tonumber index if not data then return i18n warnDump end i i 1 end end function p formatStatements frame return p formatProperty frame end return p