Module:Wikidata/Sorters/haslabel
Εμφάνιση
< Module:Wikidata | Sorters
![Documentation icon](http://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Test_Template_Info-Icon_-_Version_%282%29.svg/50px-Test_Template_Info-Icon_-_Version_%282%29.svg.png)
Μπορείτε να συμβάλλετε στη δημιουργία σελίδας τεκμηρίωσης για αυτό το Scribunto module. Οι συντάκτες μπορούν να πειραματίζονται στο πρόχειρο (δημιουργία | αντίγραφο) και στις δοκιμαστικές σελίδες (δημιουργία) του module. Παρακαλούμε να προσθέτετε τις κατηγορίες στην υποσελίδα τεκμηρίωσης. Υποσελίδες αυτού του module. |
--require "Module:No globals"
local p = {}
local lib = require 'Module:Wikidata/lib'
local Formatters = require 'Module:Wikidata/Formatters'
local cache = {}
local function getLabel(value)
if not cache[value] then
cache[value] = mw.wikibase.label(value) or false
end
return cache[value] or nil
end
local function hasLabel(snak)
return lib.IsSnakValue(snak) and getLabel(Formatters.getRawValue(snak)) and true
end
function p.isCompleteSnak(snak)
return true
end
function p.isCompleteStatement(statement)
return p.isCompleteSnak(statement.mainsnak)
end
function p.mayCompareSnak(snak)
return lib.datatypeToValueType[snak.datatype] == 'wikibase-entityid'
end
function p.mayCompareStatement(statement)
return p.mayCompareSnak(statement.mainsnak)
end
function p.compareSnaks(first, second)
local first_has_label = hasLabel(first)
local second_has_label = hasLabel(second)
if first_has_label == second_has_label then
return 0
elseif first_has_label then
return -1
else
return 1
end
end
function p.compareStatements(first, second)
return p.compareSnaks(first.mainsnak, second.mainsnak)
end
return p