controllo Di Autorità

Modulo che implementa il template }.

Ha due sottopagine:


--[[ * Modulo che implementa il template Controllo di autorità. * Il modulo è stato importato inizialmente da: * https://en.wikipedia.org/w/index.php?title=Module:Authority_control&oldid=633242817 ]]  require('strict')  local mWikidata = require('Modulo:Wikidata') local modlingue = require('Modulo:Lingue') local cfg = mw.loadJsonData('Modulo:Controllo di autorità/Configurazione.json')  ------------------------------------------------------------------------------- --                  Funzioni di utilità -------------------------------------------------------------------------------  -- Returns the ISNI check digit isni must be a string where the 15 first elements are digits local function getIsniCheckDigit(isni) local total = 0 for i = 1, 15 do local digit = isni:byte(i) - 48 -- Get integer value total = (total + digit) * 2 end local remainder = total % 11 local result = (12 - remainder) % 11 if result == 10 then return "X" end return tostring(result) end  -- Validate ISNI (and ORCID) and retuns it as a 16 characters string or returns false if it's invalid -- See http://support.orcid.org/knowledgebase/articles/116780-structure-of-the-orcid-identifier local function validateIsni(id) id = id:gsub('[ %-]', ''):upper() if not id:match('^%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d[%dX]$') then return false end if getIsniCheckDigit(id) ~= string.char(id:byte(16)) then return false end return id end  local function splitLccn(id) if id:match('^%l%l?%l?%d%d%d%d%d%d%d%d%d?%d?$') then id = id:gsub('^(%l+)(%d+)(%d%d%d%d%d%d)$', '%1/%2/%3') end if id:match('^%l%l?%l?/%d%d%d?%d?/%d+$') then  return mw.text.split(id, '/') end return false end  local function append(str, c, length) while str:len() < length do str = c .. str end return str end  ------------------------------------------------------------------------------- --                  Funzioni per generare i link -------------------------------------------------------------------------------  local f = {}  function f.viafLink(id) if not string.match(id, '^%d+$') then return false end return string.format('[https://viaf.org/viaf/%s %s]', id, id) end  function f.isniLink(id) id = validateIsni(id) if not id then return false end return string.format('[http://isni.org/isni/%s %s %s %s %s]', id, id:sub(1, 4), id:sub(5, 8), id:sub(9, 12), id:sub(13, 16)) end  function f.sbnvLink(id) if not string.match(id, '^%u%u[%d%u]%u%d%d%d%d%d%d$') then return false end return string.format('[https://opac.sbn.it/risultati-autori/-/opac-autori/detail/%s?core=autoriall %s]', id, id) end  function f.sbneLink(id) if not string.match(id, '^%u%u[%d%u][%d%u]%d%d%d%d%d%d$') then return false end return string.format('[https://opac.sbn.it/opera/%s %s]', id, id) end  function f.sbnlLink(id) if not string.match(id, '^%u%u[%d%u]%u%d%d%d%d%d%d$') then return false end return string.format('[https://opac.sbn.it/luogo/%s %s]', id, id) end  function f.bavLink(id)  if not string.match(id, '^%d%d%d/%d%d?%d?%d?%d?%d?$') then return false end return string.format('[https://opac.vatlib.it/auth/detail/%s %s]', id:sub(1,3) .. '_' .. id:sub(5), id)  end  function f.bncfLink(id) if not tonumber(id) then return false end return string.format('[https://thes.bncf.firenze.sbn.it/termine.php?id=%s %s]', id, id) end  function f.cerlLink(id) if not string.match(id, 'cn[cilp]%d%d%d%d%d%d%d%d$') then   return false end  return string.format('[https://thesaurus.cerl.org/record/%s %s]', id, id) end  function f.europeanaLink(id) if not string.match(id, '^[a-z]+/base/[1-9]%d*$') then return false end return string.format('[https://data.europeana.eu/%s %s]', id, id) end  function f.orcidLink(id) id = validateIsni(id) if not id then return false end id = id:sub(1, 4) .. '-' .. id:sub(5, 8) .. '-'  .. id:sub(9, 12) .. '-'  .. id:sub(13, 16) return string.format('[https://orcid.org/%s %s]', id, id) end  function f.lccnLink(id) local parts = splitLccn(id) if not parts then return false end local lccnType = parts[1] ~= 'sh' and 'names' or 'subjects' id = parts[1] .. parts[2] .. append(parts[3], '0', 6) return string.format('[http://id.loc.gov/authorities/%s/%s %s]', lccnType, id, id) end  function f.ulanLink(id) return string.format('[https://www.getty.edu/vow/ULANFullDisplay?find=&role=&nation=&subjectid=%s %s]', id, id) end  function f.gndLink(id) return string.format('[https://d-nb.info/gnd/%s %s]', id, id) end  function f.bneLink(id) return string.format('[http://catalogo.bne.es/uhtbin/authoritybrowse.cgi?action=display&authority_id=%s %s] [http://datos.bne.es/resource/%s (data)]', id, id, id) end  function f.bnfLink(id) -- Add cb prefix if it has been removed if not string.match(id, '^cb.+$') then id = 'cb' .. id end return string.format('[https://catalogue.bnf.fr/ark:/12148/%s %s] [https://data.bnf.fr/ark:/12148/%s (data)]', id, id, id) end  function f.j9uLink(id) return string.format('[http://olduli.nli.org.il/F/?func=find-b&local_base=NLX10&find_code=UID&request=%s %s]', id, id, id) end  function f.nskLink(id) return string.format('[https://katalog.nsk.hr/F/?func=direct&local_base=nsk10&doc_number=%s %s]', id, id) end  function f.ndlLink(id) if not string.match(id, '^0?%d%d%d%d%d%d%d%d$') then return false end return string.format('[https://id.ndl.go.jp/auth/ndlna/%s %s]', id, id)  end  function f.conorsiLink(id) return string.format('[https://plus.si.cobiss.net/opac7/conor/%s %s]', id, id) end  function f.worldcatLink(id) return string.format('[https://www.worldcat.org/identities/%s %s]', id, id) end  ------------------------------------------------------------------------------- --                  Funzioni esportate -------------------------------------------------------------------------------  local p = {}  -- Funzione di utilità per il manuale, restituisce un elenco degli identificativi. function p.identifiers(frame) local ret = {} for _, params in ipairs(cfg) do local value, n = params.etichetta:gsub('|%u%u+', '') if n > 0 then value = string.format('%s (%s)', value, params.codice) end if frame.args.wikidata then value = string.format('%s, su Wikidata [[d:P:P%s|P%s]]', value, params.P, params.P) end table.insert(ret, '* ' .. value) end return table.concat(ret, '\n') end  -- Funzione per il template {{Controllo di autorità}}. function p.authorityControl(frame) local elements, categories = {}, {} local ret = '' local styles = 'Modulo:Controllo di autorità/styles.css'  for _, params in ipairs(cfg) do local val = mWikidata._getProperty({ 'P' .. params.P, n = 1 }) if val then local el, cat local link = f[params.funzione](val) if link then local lingue = params.lingue and (modlingue.lingue(params.lingue) .. ' ') or '' el = string.format('%s %s%s', params.etichetta, lingue, link) cat = string.format('[[Categoria:Voci con codice %s]]', params.codice) else el = string.format('', val, params.codice) cat = string.format('[[Categoria:Voci con codici controllo di autorità non validi (%s)]]', params.codice) end table.insert(elements, el) table.insert(categories, cat) end end  if #elements > 0 then ret = mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = styles } } ret = ret .. string.format('
%s%s
'
, '[[Aiuto:Controllo di autorità|Controllo di autorità]]', table.concat(elements, ' · ')) if mWikidata._instanceOf({ 'Q5' }) then table.insert(categories, '[[Categoria:Voci biografiche con codici di controllo di autorità]]') else table.insert(categories, '[[Categoria:Voci non biografiche con codici di controllo di autorità]]') end else table.insert(categories, '[[Categoria:Voci con template Controllo di autorità ma senza codici]]') end return ret .. (mw.title.getCurrentTitle().namespace == 0 and table.concat(categories) or '') end return p

Tags:

Template:Controllo di autorità

🔥 Trending searches on Wiki Italiano:

Marco (evangelista)Nascita della Repubblica ItalianaStato di PalestinaEpisodi de Il clandestinoLéa SeydouxPablo EscobarSimone Di PasqualeMark van BommelAchille StaraceHercai - Amore e vendettaJim CarreyAppuntamento al parcoCoppa Italia 2023-2024 (fase finale)Sbarco in SiciliaValentina PersiaPechino ExpressUdinese Calcio25 aprileTito VilanovaFootball Club Internazionale MilanoJoe BidenMoisés AriasThe Watchers - Loro ti guardanoBiondo (rapper)Paolo ScaroniLori e George SchappellJason StathamMoana PozziAlessandro Borghi (attore)Piero CalamandreiLeonardo DiCaprioCarlo I d'InghilterraRivoluzione dei garofaniHo voglia di te (film)Francesco MilleriWikipediaCharles De KetelaereAnna MagnaniPartito d'AzioneDR Automobiles GroupeRose VillainBelveEpisodi de L'attacco dei gigantiTrap (film)RussiaOne Day (film)Michele MorettiBeautifulKurt RussellAffari tuoiMia MartiniBella ciaoDaniele LuchettiFlavio CobolliCamerieriElla PurnellBruce WillisRupert EverettPino RomualdiEpisodi di Grey's Anatomy (ventesima stagione)Luigi BrugnaroThe Walking Dead (serie televisiva)Gaio Giulio CesareJake GyllenhaalMassimo MorattiCarlo AncelottiFrancesca CiprianiBarbra StreisandEma StokholmaBebo StortiLeonardo da VinciQualcosa di cui... sparlareSydney SweeneyFabbricante di lacrime (film)Venus WilliamsKung Fu Panda 4Laura PepePartito Socialista ItalianoEnrico Berlinguer🡆 More