A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Modul:Authority control
Ez a modul a {{nemzetközi katalógusok}}
(?) szíve. Eredetileg az angol Wikipédia Authority control moduljából származik. Wikiszövegből (sablonból) az authorityControl
, Luából az _authorityControl
függvénnyel hívható.
--
--Original source the enwiki Modul:Authority control
--
require('strict')
local function getCatForId( id )
local title = mw.title.getCurrentTitle()
local namespace = title.namespace
if namespace == 0 then
return 'Kategória:Wikipédia-szócikkek ' .. id .. ' azonosítóval'
elseif namespace == 2 and not title.isSubpage then
return 'Kategória:Szerkesztői lapok ' .. id .. ' azonosítóval'
else
return 'Kategória:Egyéb lapok ' .. id .. ' azonosítóval'
end
end
local function worldcatLink(id)
return 'https://id.oclc.org/worldcat/entity/' .. id .. ' ' .. id .. ''
end
local function uscongressLink(id)
return 'http://bioguide.congress.gov/scripts/biodisplay.pl?index=' .. id .. ' ' .. id .. ''
end
local function mgpLink(id)
-- TODO Implement some sanity checking regex
return 'http://www.genealogy.ams.org/id.php?id=' .. id .. ' ' .. id .. ''
end
local function botanistLink(id)
local id2 = mw.ustring.gsub(id, '%s', function(s) return mw.uri.encode(s, 'PATH') end)
return 'http://www.ipni.org/ipni/advAuthorSearch.do?find_abbreviation=' ..id2.. ' ' ..id..''
end
local function viafLink( id )
if not string.match( id, '^%d+$' ) then
return false
end
return 'https://viaf.org/viaf/' .. id .. ' ' .. id .. '' .. getCatForId( 'VIAF' )
end
local function nszlLink( id )
return 'https://viaf.org/processed/NSZL%7C' .. id ..' ' ..id.. '' .. getCatForId( 'OSZK' )
-- return 'http://nektar.oszk.hu/auth/' .. id ..' ' ..id.. '' .. getCatForId( 'NEKTAR' )
end
local function nektarLink( id )
-- return 'http://viaf.org/processed/NSZL%7C' .. id ..' ' ..id.. '' .. getCatForId( 'OSZK' )
return 'http://nektar.oszk.hu/auth/' .. id ..' ' ..id.. '' .. getCatForId( 'NEKTAR' )
end
local function pimLink( id )
return 'https://resolver.pim.hu/auth/' .. id ..' ' ..id.. '' .. getCatForId( 'PIM' )
end
local function mtmtLink( id )
return 'https://vm.mtmt.hu/search/slist.php?AuthorID=' .. id ..' ' ..id.. '' .. getCatForId( 'MTMT' )
end
local function oszmiLink( id )
return 'https://resolver.szinhaztortenet.hu/collection/' .. id ..' ' ..id.. '' .. getCatForId( 'OSZMI' )
end
local function sudocLink(id)
if not string.match(id, '^%d%d%d%d%d%d%d%d%dxX$') then
return false
end
return 'https://www.idref.fr/' .. id .. ' ' .. 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
local function lccnLink( id )
local parts = splitLccn( id )
if not parts then
return false
end
id = parts1 .. parts2 .. append( parts3, '0', 6 )
return 'http://lccn.loc.gov/' .. id .. ' ' .. id .. '' .. getCatForId( 'LCCN' )
end
local function mbLink( id )
-- TODO Implement some sanity checking regex
return 'https://musicbrainz.org/artist/' .. id .. ' ' .. id .. ''
end
--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 isniLink( id )
id = validateIsni( id )
if not id then
return false
end
return 'http://isni.org/isni/' .. id .. ' ' .. id:sub( 1, 4 ) .. ' ' .. id:sub( 5, 8 ) .. ' ' .. id:sub( 9, 12 ) .. ' ' .. id:sub( 13, 16 ) .. '' .. getCatForId( 'ISNI' )
end
local function 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 'https://orcid.org/' .. id .. ' ' .. id .. '' .. getCatForId( 'ORCID' )
end
local function gndLink( id )
return 'https://d-nb.info/gnd/' .. id .. ' ' .. id .. '' .. getCatForId( 'GND' )
end
local function selibrLink( id )
return 'https://libris.kb.se/auth/' .. id .. ' ' .. id .. '' .. getCatForId( 'SELIBR' )
end
local function bnfLink( id )
--Add cb prefix if it has been removed
if not string.match( id, '^cb.+$' ) then
id = 'cb' .. id
end
return 'https://catalogue.bnf.fr/ark:/12148/' .. id .. ' ' .. id .. '' .. getCatForId( 'BNF' )
end
local function bneLink(id)
return 'http://catalogo.bne.es/uhtbin/authoritybrowse.cgi?action=display&authority_id=' ..id.. ' ' ..id..'' .. getCatForId( 'BNF' )
end
local function nkcLink( id )
return 'https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=' ..id..'&CON_LNG=ENG '..id..''
end
local function bpnLink( id )
if not string.match( id, '^%d+$' ) then
return false
end
return 'http://www.biografischportaal.nl/persoon/' .. id .. ' ' .. id .. '' .. getCatForId( 'BPN' )
end
local function kktLink( id )
if not string.match( id, '^0?%d%d%d%d%d%d%d%d$' ) then
return false
end
return 'https://id.ndl.go.jp/auth/ndlna/' .. id .. ' ' .. id .. '' .. getCatForId( 'KKT' )
end
local function bibsysLink( id )
return 'http://ask.bibsys.no/ask/action/result?cmd=&kilde=biblio&cql=bs.autid+%3D+' .. id .. '&feltselect=bs.autid ' .. id .. '' .. getCatForId( 'BIBSYS' )
end
local function ulanLink( id )
return 'http://www.getty.edu/vow/ULANFullDisplay?find=&role=&nation=&subjectid=' .. id .. ' ' .. id .. '' .. getCatForId( 'ULAN' )
end
local function rkdartistsLink(id)
return 'https://rkd.nl/en/explore/artists/' .. id .. ' ' .. id .. ''
end
local function sbnLink( id )
if not string.match( id, '^%D%DA-Z0-3V%d%d%d%d%d%d$' ) then
return false
end
return 'https://opac.sbn.it/nome/' .. id .. ' ' .. id .. '' .. getCatForId( 'SBN' )
end
local function getIdsFromWikidata( item, property )
local ids = {}
for _, statement in ipairs( item:getBestStatements( property ) ) do
if statement.mainsnak.datavalue then
table.insert( ids, statement.mainsnak.datavalue.value )
end
end
return ids
end
local function matchesWikidataRequirements( item, reqs )
for _, group in pairs( reqs ) do
local property = 'P' .. group1
local qid = group2
if item.claimsproperty ~= nil then
for _, statement in ipairs ( item.claimsproperty ) do
if statement.mainsnak.datavalue ~= nil then
if statement.mainsnak.datavalue.value'numeric-id' == qid then
return true
end
end
end
end
end
return false
end
local function createRow( id, label, rawValue, link, withUid )
if link then
if withUid then
return '* ' .. label .. ' <span class="uid">' .. link .. '</span>\n'
else
return '* ' .. label .. ' ' .. link .. '\n'
end
else
return '* <span class="error">A(z) ' .. rawValue .. ' ' .. id .. '-azonosító érvénytelen.</span>Kategória:Szócikkek hibás katalógusazonosítókkal|' .. id .. '\n'
end
end
--In this order: name of the parameter, label, propertyId in Wikidata, formatting function
local conf = {
{ 'WorldCat', 'WorldCat|WorldCat', 10832, worldcatLink },
{ 'VIAF', 'Nemzetközi Virtuális Katalógustár|VIAF', 214, viafLink },
{ 'NSZL', 'Országos Széchényi Könyvtár|OSZK', 951, nszlLink },
{ 'Nektár', 'Országos Széchényi Könyvtár|NEKTÁR', 3133, nektarLink },
{ 'PIM', 'Petőfi Irodalmi Múzeum|PIM', 3973, pimLink },
{ 'OSZMI', 'Országos Színháztörténeti Múzeum és Intézet|OSZMI', 6796, oszmiLink },
{ 'MTMT', 'Magyar Tudományos Művek Tára|MTMT', 2492, mtmtLink },
{ 'LCCN', 'Kongresszusi Könyvtár|LCCN', 244, lccnLink },
{ 'ISNI', 'Nemzetközi Szabványos Névazonosító|ISNI', 213, isniLink },
{ 'ORCID', 'ORCID', 496, orcidLink },
{ 'GND', 'Integrált katalógustár|GND', 227, gndLink },
{ 'SELIBR', 'Svéd Nemzeti Könyvtár|LIBRIS', 906, selibrLink },
{ 'SUDOC', 'SUDOC', 269, sudocLink },
{ 'NKC', 'A Cseh Köztársaság Nemzeti Könyvtára|NKCS', 691, nkcLink },
{ 'BNF', 'Francia Nemzeti Könyvtár|BNF', 268, bnfLink },
{ 'SBN', 'Egyesített olasz nemzeti katalógus|ICCU', 396, sbnLink },
{ 'BNE', 'Spanyol Nemzeti Könyvtár|BNE', 950, bneLink },
{ 'BPN', 'Holland Életrajzi Portál|BPN', 651, bpnLink },
{ 'KKT', 'Országgyűlési Könyvtár (Japán)|KKT', 349, kktLink },
{ 'BIBSYS', 'BIBSYS', 1015, bibsysLink },
{ 'MGP', 'Mathematics Genealogy Project|MGP', 549, mgpLink },
{ 'Botanist','Szerző idézése (botanika)|botanikai rövid név', 428, botanistLink },
{ 'ULAN', 'Union List of Artist Names|ULAN', 245, ulanLink },
{ 'MBA', 'MusicBrainz', 434, mbLink },
{ 'RKDartists', 'RKD', 650, rkdartistsLink },
{ 'USCongress', 'Kongresszusi Könyvtár', 1157, uscongressLink },
}
-- Check that the Wikidata item has this property-->value before adding it
local reqs = {}
reqs'MBA' = {
{ 106, 177220 }, -- occupation -> singer
{ 31, 177220 }, -- instance of -> singer
{ 106, 13385019 }, -- occupation -> rapper
{ 31, 13385019 }, -- instance of -> rapper
{ 106, 639669 }, -- occupation -> musician
{ 31, 639669 }, -- instance of -> musician
{ 106, 36834 }, -- occupation -> composer
{ 31, 36834 }, -- instance of -> composer
{ 106, 488205 }, -- occupation -> singer-songwriter
{ 31, 488205 }, -- instance of -> singer-songwriter
{ 106, 183945 }, -- occupation -> record producer
{ 31, 183945 }, -- instance of -> record producer
{ 106, 10816969 }, -- occupation -> club DJ
{ 31, 10816969 }, -- instance of -> club DJ
{ 106, 130857 }, -- occupation -> DJ
{ 31, 130857 }, -- instance of -> DJ
{ 106, 158852 }, -- occupation -> conductor
{ 31, 158852 }, -- instance of -> conductor
{ 31, 215380 }, -- instance of -> band
{ 31, 5741069 }, -- instance of -> rock band
{ 31, 2491498 }, -- instance of -> pop group
}
local p = {}
function p._authorityControl( args )
args = args or {}
local explicitArg = ''
local qid = nil
if args1 then
explicitArg = explicitArg .. 'Kategória:Nemzetközi katalógusok sablont Wikidata-paraméterrel hívó lapok'
if type(args1) == 'string' and string.match(args1, '^Q%d+$') then
qid = args1
end
end
for k, v in pairs(args) do
if k ~= 1 then
explicitArg = explicitArg .. 'Kategória:Nemzetközi katalógusok sablont paraméterekkel hívó lapok'
break
end
end
--Create rows
local elements = {}
--redirect PND to GND
if (args.GND == nil or args.GND == '') and args.PND ~= nil and args.PND ~= '' then
args.GND = args.PND
end
--Wikidata fallback if requested
local item = mw.wikibase.getEntity(qid)
if item ~= nil and item.claims ~= nil then
for _, params in pairs( conf ) do
if params3 ~= 0 then
local val = argsparams1
if not val or val == '' then
local canUseWikidata = nil
if reqsparams1 ~= nil then
canUseWikidata = matchesWikidataRequirements( item, reqsparams1 )
else
canUseWikidata = true
end
if canUseWikidata then
local wikidataIds = getIdsFromWikidata( item, 'P' .. params3 )
if wikidataIds1 then
argsparams1 = wikidataIds1
end
end
end
end
end
end
--Configured rows
for k, params in pairs( conf ) do
local val = argsparams1
if val and val ~= '' then
table.insert( elements, createRow( params1, params2 .. ':', val, params4( val ), true ) )
end
end
local list = table.concat( elements )
if list == '' then
return explicitArg
end
local frame = mw.getCurrentFrame()
local css = frame:extensionTag('templatestyles', '', { src = 'Nemzetközi katalógusok/style.css' }) ..
frame:extensionTag('templatestyles', '', { src = 'hlist/styles.css' })
local Navbox = require 'Modul:Navbox'
return Navbox._navbox( {
'név' = 'Nemzetközi katalógusok',
'navboxosztály' = 'authoritycontrol',
'bodyosztály' = 'hlist',
'csoportszélesség' = 'auto',
'csoport1' = ':Sablon:Nemzetközi katalógusok/doc|Nemzetközi katalógusok',
'lista1' = table.concat( elements ) .. css .. explicitArg
} )
end
function p.authorityControl( frame )
local parentArgs = frame:getParent().args
parentArgs1 = parentArgs1 and parentArgs1:match( '^%s*(.-)%s*$' )
parentArgs1 = parentArgs1 ~= '' and parentArgs1
return p._authorityControl( parentArgs )
end
return p
A lap szövege Creative Commons Nevezd meg! – Így add tovább! 3.0 licenc alatt van; egyes esetekben más módon is felhasználható. Részletekért lásd a felhasználási feltételeket.
Source: Modul:Authority_control
Áramgenerátor
Analóg multiméterek túlterhelés elleni védelme
Egyenáram
Egyenáram mérése
Egyenirányítós lengőtekercses műszer
Elektromágnes (fizika)
Elektromos feszültség
Elektromos térerősség
Fáziseltolódás
Fázismutató
Fajlagos ellenállás
Feszültséggenerátor
Feszültségváltó
Forgó mágneses tér
Háromfázisú hálózat
Hőelektromosság
Hatásos ellenállás
Analóg multiméterek túlterhelés elleni védelme
Egyenáram
Egyenáram mérése
Egyenirányítós lengőtekercses műszer
Elektromágnes (fizika)
Elektromos feszültség
Elektromos térerősség
Fáziseltolódás
Fázismutató
Fajlagos ellenállás
Feszültséggenerátor
Feszültségváltó
Forgó mágneses tér
Háromfázisú hálózat
Hőelektromosság
Hatásos ellenállás
A lap szövege Creative Commons Nevezd meg! – Így add tovább! 3.0 licenc alatt van; egyes esetekben más módon is felhasználható. Részletekért lásd a felhasználási feltételeket.