Module:Authority control/config/sandbox
![]() | This is the module sandbox page for Module:Authority control/config (diff). |
![]() | This Lua module is used on approximately 2,180,000 pages, or roughly 3% of all pages. To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them. |
Wikipedia authority control |
---|
![]() | Difference with: staging live |
Contains configuation details for Module:Authority control. Authority control/config/sandbox
Syntax
The syntax for the p.config
table is as follows:
- property = Wikidata property number, without the prefix P.
- section = section number to place the identifier. See #List of sections for details.
- pattern = Lua pattern of valid format for identifier. Note this is similar but not identical to a regular expression. If this is omitted, then the module will not check the validity of the identifiers.
- link = the URL of the external page with details of the identifier. The code
$1
will be replaced with the identifier. - label = the label for the link.
- remark = a brief explanation of the authority control database, for use on the documentation of Template:Authority control only.
Example
The syntax below generates a link to the Dictionary of Irish Biography in section 5. It gets its data from Wikidata property Dictionary of Irish Biography ID (P6829) and identifiers need to be in the following form: 0, followed by 0 or 1, followed by 4 digits, possibly followed by a decimal point and then a letter from A to D.
{
property = 6829,
section = 5,
pattern = '0[01]%d%d%d%d%.?[A-D]?',
link = 'https://doi.org/10.3318/dib.$1.v1',
label = 'Ireland',
},
Advanced parameters
- patterns = if more than one Lua pattern is needed, then use the plural form of this argument and include the comma-separated list of patterns enclosed by curly braces.
- prefix = a prefix to be included before the links. In this case numbers 1, 2, ... will be used as the labels and the label field will be ignored.
- valid = the name of a custom Lua function in /auxiliary used to determine if the identifier is valid or not, in case the pattern method cannot be used. It should return
false
if the identifier is invalid. - customlink = the name of a custom Lua function in /auxiliary which will produce the entire external link. It should return
false
if the identifier is invalid. - suppressedbyproperty = if this identifier should not be displayed if other identifiers are present, then specify them here in a comma-separated list enclosed by curley braces. Note: the property to be suppressed must be listed later in the list than the property which suppresses it.
- category = defines a category that should be used to track uses of this property (not usually needed). For example if
category = 'VIAF'
then Category:Articles with VIAF identifiers and Category:Articles with faulty VIAF identifiers will be populated.
List of sections
The names of each section are defined by the p.sectionNames
function. The syntax is as follows:
[number] = {name = name of section, hidelabelwhenalone = true/false},
where
- number is the section number (must be sequential integer).
- name of section is the name which appears in the header column of the infobox.
- true/false is set to true if you want the name to be suppressed when this section is the only section to be displayed. (For example, there is no point in showing "Other" if that is the only section.) The default is false.
For example, the section 7 is defined as:
[7] = {name = 'Other', hidelabelwhenalone = true}
This section has name "Other" and it will be hidden when it is the only section to be shown.
The current list of sections is shown below: Lua error in Module:Authority_control/documentation/sandbox at line 5: data for mw.loadData contains unsupported data type 'function'.
Whitelists
The whitelists are defined by the p.whitelists
function. The syntax is as follows:
code = {topic = topic QID, properties = {property PIDs}}
where
- code is the code of the whitelist which is called via the
|show=
parameter. - topic QID is the Wikidata QID for the topic represented by the whitelist, without the Q prefix.
- property QIDs is a comma-separated list of PIDs for the properties included in the whitelist (without the prefix P).
For example, the whitelist for Italy is defined as:
it = {topic = 38, properties = {396, 3863, 1986, 8034}},
The whitelist has code it
, represents Italy (Q38) and includes the following properties: SBN author ID (P396), Italian Navy Lighthouses and Beacons ID (P3863), Treccani's Biographical Dictionary of Italian People ID (P1986), Vatican Library VcBA ID (P8034).
The currently recognised whitelists are listed below: Lua error in Module:Authority_control/documentation/sandbox at line 5: data for mw.loadData contains unsupported data type 'function'.
See also
require('strict')
local p = {}
--[[==========================================================================]]
--[[ Property formatting functions ]]
--[[==========================================================================]]
function p.bnfLink(id,label)
if not id:match( '^c?b?%d%d%d%d%d%d%d%d[0-9bcdfghjkmnpqrstvwxz]$' ) then
return false
end
if not id:match( '^cb.+$' ) then --add cb prefix if it has been removed
id = 'cb'..id
end
return '[https://catalogue.bnf.fr/ark:/12148/'..id..' '..(label or 'France')..'] [https://data.bnf.fr/ark:/12148/'..id..' (data)]'
end
function p.dbiV(id)
local part1, part2;
if id:find ('_res', 1, true) then
part1, part2 = id:match ('([^_]+)(_res.+)'); -- split at constant '_res'; part 2 nil when no constant '_res'
else
part1 = id; -- part2 not in target
end
if part1:find ('[^%-%l]') then -- if <part1> has anything but lowercase letters and hyphens
return false; -- invalid so return false
else -- here when <part1> has only lowercase letters and hyphens
if part1:match ('^%-') or part1:match ('%-$') then -- first and last characters in <part1> must be lowercase letters
return false; -- invalid so return false
end
end
if part2 then
if not part2:match ('^_res%-%x%x%x%x%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%x%x%x%x%x%x%x%x$') then
return false; -- invalid so return false
end
end
return id
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
function p.validateIsni(id)
--P213 (ISNI) format regex: [0-9]{4} [0-9]{4} [0-9]{4} [0-9]{3}[0-9X] (e.g. 0000-0000-6653-4145)
--P496 (ORCID) format regex: 0000-000(1-[5-9]|2-[0-9]|3-[0-4])\d{3}-\d{3}[\dX] (e.g. 0000-0002-7398-5483)
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
local total = 0
for i = 1, 15 do
local digit = id:byte( i ) - 48 --Get integer value
total = (total + digit) * 2
end
local remainder = total % 11
local result = (12 - remainder) % 11
local checkdigit
if result == 10 then
checkdigit = 'X'
else
checkdigit=tostring( result )
end
if checkdigit ~= string.char( id:byte( 16 ) ) then
return false
end
return id
end
local function splitLccn(id)
--P244's format regex: (n|nb|nr|no|ns|sh)([4-9][0-9]|00|20[0-1][0-9])[0-9]{6} (e.g. n78039510)
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
function p.lccnV(id)
local function append(str, c, length)
while str:len() < length do
str = c..str
end
return str
end
local parts = splitLccn(id) --e.g. n78039510
if not parts then
return false
end
local lccnType = parts[1] ~= 'sh' and 'names' or 'subjects'
return lccnType .. '/' .. parts[1] .. parts[2] .. append( parts[3], '0', 6 )
end
function p.WorldCatLCCN(id)
local lccnParts = splitLccn(id)
if lccnParts and lccnParts[1] ~= 'sh' then
return lccnParts[1]..lccnParts[2]..'-'..lccnParts[3]
else
return false
end
end
function p.orcidV(id)
id = p.validateIsni(id)
if not id then
return false
end
return id:sub( 1, 4 )..'-'..id:sub( 5, 8 )..'-'..id:sub( 9, 12 )..'-'..id:sub( 13, 16 )
end
function p.tlsV(id)
id = id:gsub(' +', '_')
local idlen = mw.ustring.len(id)
if idlen < 4 or idlen > 90 then
return false
end
local regex = '^%u'..string.rep("[%w_',%.%-%(%)%*%/–&]", idlen - 1)..'$'
if not mw.ustring.match(id,regex ) then
return false
end
return id
end
function p.uscgLink(id)
local id2 = id:match( '^[1-7]%-%d%d?%d?%d?%d?$' ) or id:match( '^[1-7]%-%d%d?%d?%d?%d?%.%d*[1-9]$' )
if id2 then
return '[https://www.navcen.uscg.gov/pdf/lightlists/LightList%20V'..mw.ustring.sub(id2,1,1)..'.pdf '..id2..']'
else
return false
end
end
function p.vcbaV(id)
return id:match( '^%d%d%d\/[1-9]%d?%d?%d?%d?%d?$' ):gsub('\/', '_')
end
function p.worldcatidV(id)
if not id:match( '^viaf%-%d+$' ) and
not id:match( '^lccn%-n[a-z]?[0-9%-]+$' ) and
not id:match( '^n[cps]%-.+$' ) then
return false
end
return mw.uri.encode(id, 'PATH')
end
function p.zbmathV(id)
local ps = {'%l[%l%-]*', '%.%l[%l%-]*', '%.%d*'}
return id:match( '^'..ps[1]..'$' ) -- prefix with no capture options
or id:match( '^'..ps[1]..ps[2]..'$' ) -- prefix with first capture option
or id:match( '^'..ps[1]..ps[3]..'$' ) -- prefix with second capture option
or id:match( '^'..ps[1]..ps[2]..ps[3]..'$' ) -- prefix and both capture options
end
p.config = {
{ 'AAG',
property = 3372,
section = 3,
example = '1',
link = 'https://www.aucklandartgallery.com/explore-art-and-ideas/artist/$1/',
label = 'Auckland',
pattern = '^%d+$',
regex = '\d+'
},
{ 'ACM-DL',
property = 864,
section = 6,
example = '12345678901',
pattern = '^%d%d%d%d%d%d%d%d%d%d%d$',
link = 'https://dl.acm.org/profile/$1',
label = 'Association for Computing Machinery',
idlink = 'ACM DL (identifier)',
regex = '\d{11}'
},
{ 'ADB',
property = 1907,
section = 5,
example = 'barton-sir-edmund-toby-71',
patterns = {'^[a-z][-a-z]+-[1-3]%d%d?%d?%d?$', '^[a-z][-a-z]+-[1-9]%d?%d?%d?$'},
link = 'http://adb.anu.edu.au/biography/$1',
label = 'Australia',
},
{ 'admiralty',
property = 3562,
patterns = {'^[A-Q]%d%d%d%d$', '^[A-Q]%d%d%d%d%.%d+$'},
section = 7,
example = 'D1204.1',
prefix = '[[Admiralty number|Admiralty]]'
},
{ 'AGSA',
property = 6804,
section = 3,
example = '3625',
pattern = '^[1-9]%d*$',
link = 'https://www.agsa.sa.gov.au/collection-publications/collection/creators/_/$1/',
label = 'South Australia',
regex = '[1-9]\d*'
},
{ 'ARLHS',
property = 2980,
section = 7,
example = 'LAT023',
pattern = '^[A-Z][A-Z][A-Z]%d%d%d%d?[A-Z]?$',
link = 'http://wlol.arlhs.com/lighthouse/$1.html',
label = 'ARLHS',
regex = '[A-Z]{3}\d{3,4}[A-Z]?',
},
{ 'autores.uy',
property = 2558,
section = 5,
example = '12345',
pattern = '^[1-9]%d?%d?%d?%d?$',
link = 'https://autores.uy/autor/$1',
label = 'Uruguay',
regex = '[1-9]\d{0,4}',
},
{ 'AWR',
property = 4186,
section = 5,
example = 'PR00768b',
patterns = {'^[A-Z][A-Z][A-Z]%d%d%d%d[a-z]$', '^[A-Z][A-Z]%d%d%d%d%d[a-z]$'},
link = 'http://www.womenaustralia.info/biogs/$1.htm',
regex = '[A-Z]{3}\d{4})|([A-Z]{2}\d{5}',
label = 'Australian Women\'s Register',
},
{ 'BIBSYS',
property = 1015,
section = 2,
example = '1234567890123',
patterns = {'^[1-9]%d?%d?%d?%d?%d?%d?%d?%d?$', '^[1-9]%d%d%d%d%d%d%d%d%d%d%d%d$'},
valid = p.bibsysV,
link = 'https://authority.bibsys.no/authority/rest/authorities/html/$1',
label = 'Norway',
},
{ 'Bildindex',
property = 2092,
section = 4,
example = '1',
pattern = '^%d+$',
link = 'https://www.bildindex.de/document/obj$1',
label = 'Bildindex (Germany)',
regex = '\d+'
},
{ 'BNC',
property = 1890,
section = 2,
example = '123456789',
pattern = '^%d%d%d%d%d%d%d%d%d$',
link = 'http://www.bncatalogo.cl/F?func=direct&local_base=red10&doc_number=$1',
label = 'Chile',
regex = '\d{9}'
},
{ 'BNE',
property = 950,
section = 2,
example = 'XX1234567',
patterns = {'^[XF][XF]%d%d%d%d%d?%d?%d?$', '^a%d%d%d%d%d?%d?%d?$', '^bi[mcsv][aoei]%d%d%d%d%d%d%d%d%d%d$', '^Mi[sm][eoa]%d%d%d%d%d%d%d%d%d%d$'},
link = 'http://catalogo.bne.es/uhtbin/authoritybrowse.cgi?action=display&authority_id=$1',
label = 'Spain',
regex = '(XX|FF|a)\d{4,7}|(bima|bimo|bica|bis[eo]|bivi|Mise|Mimo|Mima)\d{10}'
},
{ 'BNF',
property = 268,
section = 2,
example = '123456789',
regex = '\d{8}[0-9bcdfghjkmnpqrstvwxz]',
link2 = p.bnfLink,
},
{ 'BNMM',
property = 3788,
section = 2,
example = '000024044',
pattern = '^%d%d%d%d%d%d%d%d%d$',
link = 'https://catalogo.bn.gov.ar/F/?func=direct&local_base=BNA10&doc_number=$1',
label = 'Argentina',
regex = '\d{9}'
},
{ 'Botanist',
property = 428,
section = 6,
example = 'L.',
pattern = "^[%u%l%d%. '-]+$", --not easily/meaningfully implementable in Lua's regex since "(this)?" is not allowed, better than nothing
link = 'https://www.ipni.org/ipni/advAuthorSearch.do?find_abbreviation=$1',
label = 'International Plant Names Index',
regex = "('t )?(d')?(de )?(la )?(van (der )?)?(Ma?c)?(De)?(Di)?\p{Lu}?C?['\p{Ll}]*([-'. ]*(van )?(y )?(d[ae][nr]?[- ])?(Ma?c)?[\p{Lu}bht]?C?['\p{Ll}]*)*\.? ?f?\.?"
},
{ 'BPN',
property = 651,
section = 5,
example = '12345678',
patterns = {'^%d%d%d%d%d%d%d%d$', '^0?%d%d%d%d%d%d%d$', '^0?0?%d%d%d%d%d%d$'},
link = 'http://www.biografischportaal.nl/en/persoon/$1',
label = 'Netherlands',
regex = '\d{6,8}'
},
{ 'CANTICN',
property = 9984,
section = 2,
example = '981058515460906706',
pattern = '^981[0-1]%d%d%d%d%d%d%d%d%d06706$',
link = 'https://cantic.bnc.cat/registre/$1',
label = 'Catalonia',
regex = '981(0|1)\d{9}06706'
},
{ 'CANTIC',
property = 1273,
section = 2,
example = 'a12345678',
pattern = '^a%d%d%d%d%d%d%d[%dx]$',
link = 'http://cantic.bnc.cat/registres/CUCId/$1',
label = 'Catalonia',
regex = 'a\d{7}[0-9x]',
suppressedbyproperty = {9984}--don't show CANTIC if CANTICN is present, since they both go to the Library of Catalonia and the library has deprecated CANTIC IDs in favor of CANTICN IDs
},
{ 'CCG',
property = 3920,
section = 7,
example = 'A1761',
patterns = {'^[NAIP]?[1-9]%d*$', '^[NAIP]?[1-9]%d*%.%d+$'},
prefix = '[[CCG (identifier)|CCG]]',
regex = '([NAIP])?[1-9]\d*(\.\d+)?'
},
{ 'CINII',
property = 271,
section = 6,
example = 'DA12345678',
pattern = '^DA%d%d%d%d%d%d%d[%dX]$',
idlink = 'CiNii (identifier)',
link = 'https://ci.nii.ac.jp/author/$1?l=en',
label = 'CiNii (Japan)',
regex = 'DA\d{7}[\dX]'
},
{ 'CWGC',
property = 1908,
section = 8,
example = '1234567',
pattern = '^[1-9]%d*$',
link = 'https://www.cwgc.org/find-war-dead/casualty/$1/',
label = 'Commonwealth War Graves Commission',
regex = '[1-9]\d*'
},
{ 'DAAO',
property = 1707,
section = 4,
example = 'rolf-harris',
pattern ='^[a-z%-]+%d*$',
link = 'https://www.daao.org.au/bio/$1',
label = 'Australian Artists',
regex = '[a-z\-]+\d*'
},
{ 'DBI',
property = 1986,
section = 5,
example = 'dante-alighieri',
valid = p.dbiV,
link = 'https://www.treccani.it/enciclopedia/$1_(Dizionario-Biografico)',
label = 'Italian People',
regex = '[a-z]+(\-[a-z]+)*(_res\-[0-9a-f]{8}(\-[0-9a-f]{4}){3}\-[0-9a-f]{12})?'
},
{ 'DBLP',
property = 2456,
section = 6,
example = '89/4185-p',
patterns = {'^%d%d%d?%/%d+-?[%d]*[%a]*-?[%d]*$', '^[%a]+%/[%w]*-?[%d]*$'},
link = 'https://dblp.org/pid/$1',
label = 'DBLP (computer science)',
regex = '\d{2,3}\/\d+(-\d+)?[a-zA-Z-]*(-\d+)?|[a-z]\/[0-9A-Za-z]*(-\d+)?'
},
{ 'DIB',
property = 6829,
section = 5,
example = '001953',
pattern = '^0[01]%d%d%d%d%.?[A-D]?$',
link = 'https://dib.cambridge.org/viewReadPage.do?articleId=$1',
label = 'Ireland',
regex = '0[01]\d{4}(\.[A-D])?'
},
{ 'DSI',
property = 2349,
section = 4,
example = '1538',
pattern = '^[1-9]%d*$',
link = 'http://www.uni-stuttgart.de/hi/gnt/dsi2/index.php?table_name=dsi&function=details&where_field=id&where_value=$1',
label = 'Scientific illustrators',
regex = '[1-9]\d*'
},
{ 'DTBIO',
property = 7902,
section = 5,
example = '118554700',
pattern = '^1[0-9]%d%d%d%d%d%d%d?[0-9X]$',
link = 'https://www.deutsche-biographie.de/pnd$1.html?language=en',
label = 'Germany',
regex = '1[0-9]{7,8}[0-9X]'
},
{ 'EMU',
property = 4613,
section = 2,
example = '15409',
pattern = '^%d%d?%d?%d?%d?%d?$',
link = 'http://esu.com.ua/search_articles.php?id=$1',
label = 'Ukraine',
regex = '\d{1,6}'
},
{ 'FAST',
property = 2163,
section = 8,
example = '1916996',
pattern = '^[1-9]%d?%d?%d?%d?%d?%d?%d?$',
link = 'http://id.worldcat.org/fast/$1/',
label = 'Faceted Application of Subject Terminology',
regex = '[1-9]\d{0,7}'
},
{ 'FNZA',
property = 6792,
section = 4,
example = '9785',
pattern = '^[1-9]%d*$',
link = 'https://findnzartists.org.nz/artist/$1/',
label = 'New Zealand Artists',
regex = '[1-9]\d*'
},
{ 'GND',
property = 227,
section = 2,
example = '4079154-3',
patterns = {'^1[012]?%d%d%d%d%d%d%d[0-9X]$', '^[47]%d%d%d%d%d%d%-%d$', '^[1-9]%d?%d?%d?%d?%d?%d?%d?%-[0-9X]$', '^3%d%d%d%d%d%d%d[0-9X]$'},
link = 'https://d-nb.info/gnd/$1',
label = 'Germany',
regex = '1[012]?\d{7}[0-9X]|[47]\d{6}-\d|[1-9]\d{0,7}-[0-9X]|3\d{7}[0-9X]'
},
{ 'Google Scholar',
property = 1960,
section = 6,
example = 'QPdLuj8AAAAJ',
pattern = '^[%-_%d%l%u][%-_%d%l%u][%-_%d%l%u][%-_%d%l%u][%-_%d%l%u][%-_%d%l%u][%-_%d%l%u][%-_%d%l%u][%-_%d%l%u][%-_%d%l%u][%-_%d%l%u][%-_%d%l%u]$',
link = 'https://scholar.google.com/citations?user=$1',
label = 'Google Scholar',
regex = '[-_0-9A-Za-z]{12}'
},
{ 'HDS',
property = 902,
section = 8,
example = '050123',
pattern = '^%d%d%d%d%d%d$',
label = 'Historical Dictionary of Switzerland',
link = 'https://hls-dhs-dss.ch/fr/articles/$1',
regex = '\d{6}'
},
{ 'IAAF',
property = 1146,
section = 8,
example = '123',
pattern = '^%d+$',
link = 'https://www.iaaf.org/athletes/_/$1',
label = 'World Athletics',
regex = '[0-9][0-9]*'
},
{ 'ICCU',
property = 396,
section = 2,
example = 'CFIV000163',
pattern = '^%u%u[%u0-3]V%d%d%d%d%d%d$',
link = 'https://opac.sbn.it/nome/$1',
label = 'Italy',
regex = '\D{2}[A-Z0-3]V\d{6}'
},
{ 'ICIA',
property = 1736,
section = 4,
example = '1',
pattern = '^%d+$',
link = 'https://www.imj.org.il/artcenter/newsite/en/?artist=$1',
label = 'ICIA (Israel)',
regex = '\d+'
},
{ 'IEU',
property = 9070,
section = 8,
example = 'N\\A\\NationalAcademyofArtandArchitecture',
pattern = '^[A-Z]\\[A-Z]\\%w+$',
link = 'http://www.encyclopediaofukraine.com/display.asp?linkpath=pages\\$1',
label = 'Internet Encyclopedia of Ukraine',
regex = '[A-Z]\\[A-Z]\\[A-Za-z0-9]+'
},
{ 'ISNI',
property = 213,
section = 1,
example = '0000-0000-6653-4145',
prefix = '[[ISNI (identifier)|ISNI]]',
valid = p.validateIsni,
link = 'https://isni.org/isni/$1',
regex = '[0-9]{4} [0-9]{4} [0-9]{4} [0-9]{3}[0-9X]'
},
{ 'J9U',
property = 8189,
section = 2,
example = '987007305652505171',
pattern = '^9870[0-1]%d%d%d%d%d%d%d%d05171$',
link = 'http://uli.nli.org.il/F/?func=find-b&local_base=NLX10&find_code=UID&request=$1',
label = 'Israel',
regex = '9870(0|1)\d{8}05171'
},
{ 'Joconde',
property = 347,
section = 4,
example = '12345678901',
pattern = '^'..string.rep('[%-0-9A-Za-z]', 11)..'$',
link = 'https://www.pop.culture.gouv.fr/notice/joconde/$1',
label = 'Joconde (France)',
regex = '[\-0-9A-Za-z]{11}'
},
{ 'KULTURNAV',
property = 1248,
section = 4,
example = '12345678-1234-1234-1234-1234567890AB',
idlink = 'KulturNav (identifier)',
pattern = '^%x%x%x%x%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%x%x%x%x%x%x%x%x$',
link = 'http://kulturnav.org/$1',
label = 'KulturNav (Norway)',
regex = '[0-9a-f]{8}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{12}'
},
{ 'LCCN',
property = 244,
section = 2,
example = 'n78039510',
valid = p.lccnV,
link = 'https://id.loc.gov/authorities/$1',
label = 'United States',
},
{ 'LIR',
property = 886,
section = 8,
example = '1',
pattern = '^%d+$',
link = 'http://www.e-lir.ch/e-LIR___Lexicon.$1.450.0.html',
label = 'Lexicon Istoric Retic (Switzerland)',
regex = '\d+'
},
{ 'LNB',
property = 1368,
section = 2,
example = '123456789',
pattern = '^%d%d%d%d%d%d%d%d%d$',
link = 'https://kopkatalogs.lv/F?func=direct&local_base=lnc10&doc_number=$1&P_CON_LNG=ENG',
label = 'Latvia',
regex = '\d{9}'
},
{ 'Marina Militare',
property = 3863,
section = 7,
example='3856',
pattern='^[1-9]%d*$',
link='http://www.marina.difesa.it/cosa-facciamo/per-la-difesa-sicurezza/fari/Pagine/$1.aspx',
label='Italy',
regex='[1-9]\d*'
},
{ 'MarineTraffic',
property = 3601,
section = 7,
example='1000004707',
pattern='^%d%d%d%d%d%d%d%d%d%d$',
link='https://www.marinetraffic.com/en/ais/details/lights/$1',
label='MarineTraffic',
regex='\d{10}'
},
{ 'MATHSN',
property = 4955,
section = 6,
example='175270',
pattern='^[1-9]%d%d%d%d%d?%d?$',
link='https://mathscinet.ams.org/mathscinet/MRAuthorID/$1',
label='MathSciNet',
regex='[1-9]\d{4,6}'
},
{ 'MBA',
property = 434,
section = 8,
example='12345678-1234-1234-1234-1234567890AB',
cat = 'MusicBrainz',
pattern='^%x%x%x%x%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%x%x%x%x%x%x%x%x$',
link='https://musicbrainz.org/artist/$1',
prefix='[[MBA (identifier)|MusicBrainz]]',
label='artist',
regex='[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
},
{ 'MBAREA',
property = 982,
section = 8,
example='12345678-1234-1234-1234-1234567890AB',
cat = 'MusicBrainz area',
pattern='^%x%x%x%x%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%x%x%x%x%x%x%x%x$',
prefix='[[MBAREA (identifier)|MusicBrainz]]',
link='https://musicbrainz.org/area/$1',
label='area',
regex='[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
},
{ 'MBI',
property = 1330,
section = 8,
example='12345678-1234-1234-1234-1234567890AB',
cat = 'MusicBrainz instrument',
pattern='^%x%x%x%x%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%x%x%x%x%x%x%x%x$',
link='https://musicbrainz.org/instrument/$1',
label='instrument',
prefix='[[MBI (identifier)|MusicBrainz]]',
regex='[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
},
{ 'MBL',
property = 966,
section = 8,
example='12345678-1234-1234-1234-1234567890AB',
cat = 'MusicBrainz label',
pattern='^%x%x%x%x%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%x%x%x%x%x%x%x%x$',
prefix='[[MBL (identifier)|MusicBrainz]]',
label='label',
link='https://musicbrainz.org/label/$1',
regex='[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
},
{ 'MBP',
property = 1004,
section = 8,
example='12345678-1234-1234-1234-1234567890AB',
cat = 'MusicBrainz place',
pattern='^%x%x%x%x%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%x%x%x%x%x%x%x%x$',
link='https://musicbrainz.org/place/$1',
label='place',
prefix='[[MBP (identifier)|MusicBrainz]]',
regex='[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
},
{ 'MBRG',
property = 436,
section = 8,
example='12345678-1234-1234-1234-1234567890AB',
cat = 'MusicBrainz release group',
pattern='^%x%x%x%x%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%x%x%x%x%x%x%x%x$',
link='https://musicbrainz.org/release-group/$1',
label='release group',
prefix='[[MBRG (identifier)|MusicBrainz]]',
regex='[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
},
{ 'MBS',
property = 1407,
section = 8,
example='12345678-1234-1234-1234-1234567890AB',
cat = 'MusicBrainz series',
pattern='^%x%x%x%x%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%x%x%x%x%x%x%x%x$',
link='https://musicbrainz.org/series/$1',
label='series',
prefix='[[MBS (identifier)|MusicBrainz]]',
regex='[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
},
{ 'MBW',
property = 435,
section = 8,
example='12345678-1234-1234-1234-1234567890AB',
cat = 'MusicBrainz work',
pattern='^%x%x%x%x%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%x%x%x%x%x%x%x%x$',
link='https://musicbrainz.org/work/$1',
label='work',
prefix='[[MBW (identifier)|MusicBrainz]]',
regex='[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
},
{ 'MGP',
property = 549,
section = 6,
example='123456',
pattern='^%d%d?%d?%d?%d?%d?$',
link='https://www.mathgenealogy.org/id.php?id=$1',
label='Mathematics Genealogy Project',
regex='\d{1,6}'
},
{ 'NARA',
property = 1225,
section = 8,
example='12345678',
pattern='^[1-9]%d?%d?%d?%d?%d?%d?%d?%d?$',
link='https://catalog.archives.gov/id/$1',
label='National Archives (US)',
regex='^([1-9]\d{0,8})$'
},
{ 'NCL',
property = 1048,
section = 2,
example='1081436',
pattern='^%d+$',
link='http://aleweb.ncl.edu.tw/F/?func=accref&acc_sequence=$1&CON_LNG=ENG',
label='Taiwan',
regex='\d+'
},
{ 'NDL',
property = 349,
section = 2,
example = '012345678',
link = 'https://id.ndl.go.jp/auth/ndlna/$1',
patterns = {'^a1%d?%d%d%d%d%d%d%d%d', '^s?%d?%d%d%d%d%d%d%d%d'},
label = 'Japan',
regex = '(a1|s)?[0-9]?\d{8}',
},
{ 'NGA', property = 3563, section = 7, example='114-7721.2', pattern='^11[0-6]%-%d+%.?%d*$', link='https://wikidata-externalid-url.toolforge.org/?url=https%3A%2F%2Fmsi.nga.mil%2FqueryResults%3Fpublications%2Fngalol%2Flights-buoys%3Fvolume%3D%251%26featureNumber%3D%252%26includeRemovals%3Dfalse%26output%3Dhtml&exp=(%5Cd%7B3%7D)-(.*)&id=$1', label='NGA', cat='NGA', regex='11[0-6]-\d+(\.\d+)?'},
{ 'NGV', property = 2041, section = 3, example='12354', pattern='^%d+$', link='https://www.ngv.vic.gov.au/explore/collection/artist/$1/', label='Victoria', cat='NGV', regex='\d+'},
{ 'NKC', property = 691, section = 2, example='abcd12345678901234', pattern='^[a-z][a-z][a-z]?[a-z]?%d%d%d?%d?%d?%d?%d?%d?%d?%d?%d?%d?%d?%d?$', regex='[a-z]{2,4}[0-9]{2,14}', link='https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=$1&CON_LNG=ENG', label='Czech Republic', cat='NKC'},
{ 'NLA', property = 409, section = 2, example='123456789012', pattern='^[1-9]%d?%d?%d?%d?%d?%d?%d?%d?%d?%d?%d?$', regex='[1-9][0-9]{0,11}', link='https://nla.gov.au/anbd.aut-an$1', label='Australia', cat='NLA' },
{ 'NLG', property = 3348, section = 2, example='12345678', regex='[1-9]\d*', pattern='^[1-9]%d*$', link='https://data.nlg.gr/resource/authority/record$1', label='Greece', cat='NLG'},
{ 'NLK',
property = 5034,
section = 2,
example = 'KAB197000000',
regex = '(KAB|KAC|KSH)([0-9]{4}|[0-9]{4}[a-zA-Z])[0-9]{4,6}',
link = 'https://lod.nl.go.kr/resource/$1',
label = 'Korea',
patterns = {'^KAB%d%d%d%d%a?%d%d%d%d%d?%d?$', '^KAC%d%d%d%d%a?%d%d%d%d%d?%d?$', '^KSH%d%d%d%d%a?%d%d%d%d%d?%d?$'},
},
{ 'NLR', property = 1003, section = 2, example='123456789', pattern='^%d%d%d%d%d%d%d%d%d$', link='http://aleph.bibnat.ro:8991/F/?func=direct&local_base=NLR10&doc_number=$1', label='Romania', cat='NLR', regex='\d{9}'},
{ 'NSK', property = 1375, section = 2, example='123456789', pattern='^%d%d%d%d%d%d%d%d%d$', link='http://katalog.nsk.hr/F/?func=direct&doc_number=$1&local_base=nsk10', label='Croatia', cat='NSK', regex='\d{9}'},
{ 'NTA', property = 1006, section = 2, example='12345678X', pattern='^%d%d%d%d%d%d%d%d[%dX]$', link='http://data.bibliotheken.nl/id/thes/p$1', label='Netherlands', cat='NTA', regex='\d{8}[\dX]'},
{ 'ORCID', property = 496, section = 1, example='0000-0002-7398-5483', prefix = '[[ORCID (identifier)|ORCID]]', valid=p.orcidV, link='https://orcid.org/$1', cat='ORCID'},
{ 'PIC', property = 2750, section = 4, example='1', pattern='^[1-9]%d*$', link='https://pic.nypl.org/constituents/$1', label='Photographers\' Identities', cat='PIC', regex='[1-9]\d*'},
{ 'PLWABN', property = 7293, section = 2, example='9812345678905606', pattern='^981%d%d%d%d%d%d%d%d05606*$', link='http://mak.bn.org.pl/cgi-bin/KHW/makwww.exe?BM=1&NU=1&IM=4&WI=$1', label='Poland', cat='PLWABN', regex='981[0-9]{8}05606'},
{ 'NLP',
property = 1695,
section = 2,
example = '9810123456789012345',
patterns = {'^9810%d+$', '^A%d%d%d%d%d%d%d[%dX]$'},
link = 'https://tools.wmflabs.org/wikidata-externalid-url?p=1695&id=$1',
label = 'Poland',
regex = '9810[0-9]\d* or A[0-9]{7}[0-9X]',
suppressedbyproperty = {7293}
},
{ 'Publons', property = 3829, section = 6, example='2776255', pattern='^%d+$', link='https://publons.com/author/$1/', label='Publons (researchers)', cat='Publons', regex='\d+'},
{ 'RID',
property = 1053,
section = 6,
example = 'A-1234-1934',
patterns = {'^[A-Z][A-Z]?[A-Z]?%-%d%d%d%d%-19%d%d$', '^[A-Z][A-Z]?[A-Z]?%-%d%d%d%d%-20%d%d$'},
link = 'https://www.researcherid.com/rid/$1',
label = 'ResearcherID',
regex = '[A-Z]{1,3}-\d{4}-(19|20)\d\d'
},
{ 'RISM',
property = 5504,
section = 8,
example = 'pe30006410',
prefix = '[[RISM (identifier)|RISM (France)]]',
patterns = {'^pe[1-9]%d*$', '^ks[1-9]%d*$', '^[1-9]%d*$'},
link = 'https://opac.rism.info/search?id=$1',
regex = '(pe|ks)?\[1-9]d*'
},
{ 'RERO', property = 3065, section = 8, example='02-A012345678', prefix = '[[RERO (identifier)|RERO (Switzerland)]]', pattern='^0[1-2]%-[A-Z%d][A-Z%d]?[A-Z%d]?[A-Z%d]?[A-Z%d]?[A-Z%d]?[A-Z%d]?[A-Z%d]?[A-Z%d]?[A-Z%d]?$', link='http://data.rero.ch/$1', cat='RERO', regex='0[1-2]-[A-Z0-9]{1,10}'},
{ 'RKDartists', property = 650, section = 4, example='123456', pattern='^[1-9]%d?%d?%d?%d?%d?$', link='https://rkd.nl/en/explore/artists/$1', label='RKD Artists (Netherlands)', cat='RKDartists', regex='[1-9]\d{0,5}'},
{ 'RKDID', property = 350, section = 4, example='123456', pattern='^[1-9]%d?%d?%d?%d?%d?$', link='https://rkd.nl/nl/explore/images/$1', label='RKD ID (Netherlands)', cat='RKDID', regex='[1-9]\d{0,5}'},
{ 'RSL', property = 947, section = 2, example='123456789', pattern='^%d%d?%d?%d?%d?%d?%d?%d?%d?$', link='http://aleph.rsl.ru/F?func=find-b&find_code=SYS&adjacent=Y&local_base=RSL11&request=$1&CON_LNG=ENG', label='Russia', cat='RSL', regex='\d{1,9}'},
{ 'Scopus', property = 1153, section = 6, example='7005487412', pattern='^[1-9]%d%d%d%d%d%d%d%d%d%d?$', link='https://www.scopus.com/authid/detail.uri?authorId=$1', label='Scopus author', cat='Scopus', regex='[1-9]\d{9,10}'},
{ 'SELIBR', property = 906, section = 2, example='123456', pattern='^[1-9]%d%d%d%d%d?$', link='https://libris.kb.se/auth/$1', label='Sweden', cat='SELIBR', regex='[1-9]\d{4,5}'},
{ 'SIKART', property = 781, section = 4, example='123456789', pattern='^%d%d%d%d%d%d%d%d?%d?$', link='http://www.sikart.ch/KuenstlerInnen.aspx?id=$1&lng=en', label='SIKART (Switzerland)', cat='SIKART', regex='\d{7,9}'},
{ 'SNAC-ID', property = 3430, section = 8, example='A', pattern='^%d*[A-Za-z][0-9A-Za-z]*$', link='https://snaccooperative.org/ark:/99166/$1', label='Social Networks and Archival Context', cat='SNAC-ID', regex='\d*[A-Za-z][0-9A-Za-z]*' },
{ 'SUDOC', property = 269, section = 8, example='026927608', prefix = '[[SUDOC (identifier)|SUDOC (France)]]', pattern='^%d%d%d%d%d%d%d%d[%dxX]$', link='https://www.idref.fr/$1', cat='SUDOC', regex='(\d{8}[\dX]|)'},
{ 'TA98', property = 1323, section = 6, example='A12.3.45.678', pattern='^A%d%d%.%d%.%d%d%.%d%d%d[FM]?$', link='http://tools.wmflabs.org/wikidata-externalid-url/?p=1323&url_prefix=https:%2F%2Fwww.unifr.ch%2Fifaa%2FPublic%2FEntryPage%2FTA98%20Tree%2FEntity%20TA98%20EN%2F&url_suffix=%20Entity%20TA98%20EN.htm&id=$1', label='Terminologia Anatomica', regex='A\d{2}\.\d\.\d{2}\.\d{3}[FM]?'},
{ 'TDVİA', property = 7314, section = 8, example = 'asim-b-behdele', pattern='^[%d%l/-]+$', link='https://islamansiklopedisi.org.tr/$1', label='İslâm Ansiklopedisi', cat='TDVİA', regex='[0-9a-z/-]+' },
{ 'TePapa', property = 3544, section = 3, example='1', pattern='^%d+$', link='https://collections.tepapa.govt.nz/agent/$1', label='Te Papa (New Zealand)', cat='TePapa', regex='\d+' },
{ 'TLS', property = 1362, section = 8, example='Abcd', regex="\p{Lu}[\p{L}\d_',\.\-\(\)\*\/–&]{3,89}", valid=p.tlsV, link='http://tls.theaterwissenschaft.ch/wiki/$1', label='Theaterlexikon (Switzerland)', cat='TLS'},
{ 'Trove', property = 1315, section = 8, example='12345678', prefix = '[[Trove (identifier)|Trove (Australia)]]', pattern='^[1-9]%d%d%d%d%d%d?%d?$', link='https://trove.nla.gov.au/people/$1', cat='Trove', regex='[1-9]\d{5,7}'},
{ 'UKPARL', property = 6213, section = 8, example='AQUupyiR', pattern='^[a-zA-Z%d][a-zA-Z%d][a-zA-Z%d][a-zA-Z%d][a-zA-Z%d][a-zA-Z%d][a-zA-Z%d][a-zA-Z%d]$', link='https://id.parliament.uk/$1', label='UK Parliament', cat='UKPARL', regex='[a-zA-Z\d]{8}' },
{ 'ULAN', property = 245, section = 4, example='500123456', pattern='^500%d%d%d%d%d%d$', link='https://www.getty.edu/vow/ULANFullDisplay?find=&role=&nation=&subjectid=$1', label='Artist Names (Getty)', cat='ULAN', regex='500\d{6}'},
{ 'USCG', property = 3723, section = 7, example='6-0695', prefix='[[USCG (identifier)|USCG]]', link2=p.uscgLink, cat='USCG', regex='[1-7]-\d{1,5}(.[1-9])?'},
{ 'USCongress', property = 1157, section = 8, example='A000123', idlink = 'US Congress (identifier)', pattern='^[A-Z]00[01]%d%d%d$', link='http://bioguide.congress.gov/scripts/biodisplay.pl?index=$1', label='US Congress', cat='USCongress', regex='[A-Z]00[01]\d{3}' },
{ 'VcBA',
property = 8034,
section = 2,
example = '494/9793',
valid = p.vcbaV,
link = 'https://opac.vatlib.it/auth/detail/$1',
label = 'Vatican',
regex = '\d{3}\/[1-9]\d{0,5}'
},
{ 'VIAF',
property = 214,
section = 1,
example = '123456789',
prefix = '[[VIAF (identifier)|VIAF]]',
patterns = {'^[1-9]%d%d?%d?%d?%d?%d?%d?%d?$', '^[1-9]%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d?%d?%d?$'},
regex = '[1-9]\d(\d{0,7}|\d{17,20}',
link = 'https://viaf.org/viaf/$1',
},
{ 'WORLDCATID',
property = 7859,
section = 1,
example = 'lccn-n78-95332',
idlink = 'WorldCat Identities (identifier)',
valid = p.worldcatidV,
link = 'https://www.worldcat.org/identities/$1/',
label = 'WorldCat',
regex = 'viaf-\d+|lccn-n[a-z]?[0-9\-]+|n[cps]-.+'
},
{ 'VIAF', --WorldCat (via VIAF)
property = 214,
section = 1,
example = '123456789',
patterns = {'^[1-9]%d%d?%d?%d?%d?%d?%d?%d?$', '^[1-9]%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d?%d?%d?$'},
link = 'https://www.worldcat.org/identities/containsVIAFID/$1',
label = 'WorldCat (via VIAF)',
suppressedbyproperty = {7859},
cat = 'WorldCat-VIAF',
errorcat = 'VIAF',
ignoreerrors = true
},
{ 'LCCN', --WorldCat (via Library of Congress)
property = 244,
section = 1,
example = 'n78039510',
--valid = p.WorldCatLCCN,
link = 'https://www.worldcat.org/identities/lccn-$1',
label = 'WorldCat (via Library of Congress)',
suppressedbyproperty = {7859,214},
cat = 'WorldCat-LCCN',
errorcat = 'LCCN',
ignoreerrors = true
},
{ 'ZBMATH',
property = 1556,
section = 6,
example = 'turing.alan-m',
valid = p.zbmathV,
link = 'https://zbmath.org/authors/?q=ai:$1',
label = 'zbMATH',
regex = '[a-z][a-z\-]*(\.[a-z][a-z\-]*)?(\.[0-9]*)?'
},
}
-- Legitimate aliases to p.conf, for convenience
-- Format: { 'alias', 'parameter name in p.conf' }
p.aliases = {
{ 'DNB', 'GND' }, --Deutsche Nationalbibliothek -> Gemeinsame Normdatei
{ 'MusicBrainz', 'MBA' },
{ 'MusicBrainz artist', 'MBA' },
{ 'MusicBrainz label', 'MBL' },
{ 'MusicBrainz release group', 'MBRG' },
{ 'MusicBrainz work', 'MBW' },
{ 'SBN', 'ICCU' }, --SBN alias to be deprecated at a later stage
{ 'TDVIA', 'TDVİA' }, --alias name without diacritics
{ 'tdvia', 'TDVİA' }, --lowercase variant without diacritics
}
-- Deprecated aliases to p.conf; tracked in [[Category:Articles with deprecated authority control identifiers]]
-- Format: { 'deprecated parameter name', 'replacement parameter name in p.conf' }
p.deprecated = {
{ 'GKD', 'GND' },
{ 'PND', 'GND' },
{ 'RLS', 'RSL' },
{ 'SWD', 'GND' },
{ 'NARA-organization', 'NARA' },
{ 'NARA-person', 'NARA' },
}
p.sectionOrder = {
'General', -- 1
'National libraries', -- 2
'Art galleries and museums', -- 3
'Art research institutes', -- 4
'Biographical dictionaries', -- 5
'Scientific databases', -- 6
'Lighthouse identifiers', -- 7
'Other' -- 8
}
return p