require('strict')
local p = {}

--[[==========================================================================]]
--[[                      Property formatting functions                       ]]
--[[==========================================================================]]
function p.botanistV(id)
	return mw.ustring.match(id,"^[%u%l%d%. '-]+$")
end

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 'फ्रान्स')..'] [https://data.bnf.fr/ark:/12148/'..id..' (तथ्याङ्क)]'
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)
	if not id:match( '^%d%d%d\/[1-9]%d?%d?%d?%d?%d?$' ) then
		return false
	end
	return id: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 = 'अकल्याण्ड',
		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 = 'कम्प्युटिङ मेसिनरी संघ',
		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 = 'अस्ट्रेलिया',
	},
	{ 'admiralty',
		property = 3562,
		patterns = {'^[A-Q]%d%d%d%d$', '^[A-Q]%d%d%d%d%.%d+$'},
		section = 7,
		example = 'D1204.1',
		prefix = '[[:en:Admiralty number|एडमिरल्टी]]'
	},
	{ 'AGSA',
		property = 6804,
		section = 3,
		example = '3625',
		pattern = '^[1-9]%d*$',
		link = 'https://www.agsa.sa.gov.au/collection-publications/collection/creators/_/$1/',
		label = 'दक्षिण अस्ट्रेलिया',
		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 = 'एआरएलएचएस',
		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 = 'उरुग्वे',
		regex = '[1-9]\d{0,4}',
		remark = "autores.uy is an author's database, that focus on [[Uruguay]]an authors. It was created and maintained by the Uruguayan chapter of Creative Commons. It also provides access to digitized works of the authors in public domain."
	},
	{ '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 = 'अष्ट्रेलियाली महिला दर्ता',
	},
	{ '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 = 'नर्वे',
		remark = 'BIBSYS is a supplier of library and information systems for all Norwegian university Libraries, the National Library of Norway, college libraries, and a number of research libraries and institutions.'
	},
	{ 'Bildindex', 
		property = 2092,
		section = 4,
		example = '1',
		pattern = '^%d+$',
		link = 'https://www.bildindex.de/document/obj$1',
		label = 'बिल्डिन्डेक्स (जर्मनी)',
		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 = 'चिली',
		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 = 'स्पेन',
		regex = '(XX|FF|a)\d{4,7}|(bima|bimo|bica|bis[eo]|bivi|Mise|Mimo|Mima)\d{10}',
		remark = "National Library of Spain (BNE: ''Biblioteca Nacional de España'') is a major public library, the largest in Spain."
	},
	{ 'BNF',
		property = 268,
		section = 2,
		example = '123456789',
		regex = '\d{8}[0-9bcdfghjkmnpqrstvwxz]',
		link2 = p.bnfLink,
		remark = 'Authority data of people listed in the general catalogue of the National Library of France'
	},
	{ '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 = 'अर्जेन्टिना',
		regex = '\d{9}'
	},
	{ 'Botanist',
		property = 428,
		section = 6,
		example = 'L.',
		valid = p.botanistV,
		link = 'https://www.ipni.org/ipni/advAuthorSearch.do?find_abbreviation=$1',
		label = 'अन्तर्राष्ट्रिय वनस्पति नाम सूचकांक',
		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?\.?",
		remark = 'Author citation (botany): standard form (official abbreviation) of a personal name for use in an author citation (only for names of algae, fungi and plants). Links to page at [[International Plant Names Index]] (IPNI).'
	},
	{ '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 = 'नेदरल्यान्ड',
		regex = '\d{6,8}',
		remark = 'Dutch project with material for 40,000 digitized biographies, including former colonies of the Netherlands.'
	},
	{ '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 = 'क्याटालोनिया',
		regex = '981(0|1)\d{9}06706'
	},
	{ 'CCG',
		property = 3920,
		section = 7,
		example = 'A1761',
		patterns = {'^[NAIP]?[1-9]%d*$', '^[NAIP]?[1-9]%d*%.%d+$'},
		prefix = '[[:en:CCG (identifier)|सीसीजी]]',
		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 = 'सिनि (जापान)',
		regex = 'DA\d{7}[\dX]',
		remark = 'CiNii is a bibliographic database service for material in Japanese academic libraries. It is maintained by the [[National Institute of Informatics]].'
	},
	{ 'CWGC',
		property = 1908,
		section = 8,
		example = '1234567',
		pattern = '^[1-9]%d*$',
		link = 'https://www.cwgc.org/find-war-dead/casualty/$1/',
		label = 'राष्ट्रमंडल युद्ध ग्रेभ्स आयोग',
		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 = 'अष्ट्रेलियाका कलाकारहरू',
		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 = 'इटालियन मानिसहरू',
		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)',
		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 = 'आयरल्यान्ड',
		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 = 'वैज्ञानिक चित्रकारहरू',
		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 = 'जर्मनी',
		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 = 'युक्रेन',
		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 = 'फास्ट',
		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 = 'न्यूजील्याण्ड कलाकारहरू',
		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 = 'जर्मनी',
		regex = '1[012]?\d{7}[0-9X]|[47]\d{6}-\d|[1-9]\d{0,7}-[0-9X]|3\d{7}[0-9X]',
		remark = 'Authority data on people, corporations and subjects from the [[German National Library]] (DNB)'
	},
	{ '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 = 'गुगल स्कॉलर',
		regex = '[-_0-9A-Za-z]{12}'
	},
	{ 'HDS',
		property = 902,
		section = 8,
		example = '050123',
		pattern = '^%d%d%d%d%d%d$',
		label = 'स्विट्जरल्याण्ड को ऐतिहासिक शब्दकोश',
		link = 'https://hls-dhs-dss.ch/fr/articles/$1',
		regex = '\d{6}',
		remark = 'Historical Dictionary of Switzerland is an encyclopedia on the history of Switzerland.'
	},
	{ 'IAAF',
		property = 1146,
		section = 8,
		example = '123',
		pattern = '^%d+$',
		link = 'https://www.iaaf.org/athletes/_/$1',
		label = 'विश्व एथलेटिक्स',
		regex = '[0-9][0-9]*',
		remark = 'The IAAF athlete database lists information about [[sport of athletics]] competitors.'
	},
	{ '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 = 'इटाली',
		regex = '\D{2}[A-Z0-3]V\d{6}',
		remark = 'Central Institute for the Union Catalogue (ICCU: {{lang|it|Istituto Centrale per il Catalogo Unico}}) is an Italian government agency created to build a single catalog of all the libraries in the nation. It manages National Library Service ({{lang|it|Servizio bibliotecario nazionale}}).'
	},
	{ 'ICIA',
		property = 1736,
		section = 4,
		example = '1',
		pattern = '^%d+$',
		link = 'https://www.imj.org.il/artcenter/newsite/en/?artist=$1',
		label = 'आईसीआईए (इजरायल)',
		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 = 'युक्रेनको इन्टरनेट इन्साइक्लोपीडिया',
		regex = '[A-Z]\\[A-Z]\\[A-Za-z0-9]+'
	},
	{ 'ISNI',
		property = 213,
		section = 1,
		example = '0000-0000-6653-4145',
		prefix = '[[:en:ISNI (identifier)|आइसनाई]]',
		valid = p.validateIsni,
		link = 'https://isni.org/isni/$1',
		regex = '[0-9]{4} [0-9]{4} [0-9]{4} [0-9]{3}[0-9X]',
		remark = 'ISNI is a method for uniquely identifying the public identities of contributors to media content such as books, TV programmes, and newspaper articles. Please take care not to confuse ISNI and ORCID identifiers.'
	},
	{ '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 = 'इजरायल',
		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 = 'जोकोन्डे (फ्रान्स)',
		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 = 'कल्चरनाभ (नर्वे)',
		regex = '[0-9a-f]{8}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{12}',
		remark = 'KulturNav is a Norwegian cloud-based software service, allowing users to create, manage and distribute name authorities and terminology, focusing on the needs of museums and other cultural heritage institutions. The software is developed by KulturIT ANS and the development project is funded by the [[Arts Council Norway]].'
	},
	{ 'LCCN',
		property = 244,
		section = 2,
		example = 'n78039510',
		valid = p.lccnV,
		link = 'https://id.loc.gov/authorities/$1',
		label = 'संयुक्त राज्य अमेरिका',
		remark = 'See [[Wikipedia:Authority control#LCCN]] for formatting instructions'
	},
	{ 'LIR',
		property = 886,
		section = 8,
		example = '1',
		pattern = '^%d+$',
		link = 'http://www.e-lir.ch/e-LIR___Lexicon.$1.450.0.html',
		label = 'लेक्सिकन इस्टोरिक रेटिक (स्विट्जरल्याण्ड)',
		regex = '\d+',
		remark = '{{lang|rm|Lexicon Istoric Retic}} (LIR) is a two volume version with a selection of articles published in Romansh.'
	},
	{ '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 = 'लाटभिया',
		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 = 'इटाली',
		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 = 'समुद्री यातायात',
		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 = 'माथ सचि नेट',
		regex = '[1-9]\d{4,6}'
	},
	{ 'MBA',
		property = 434,
		section = 8,
		example = '12345678-1234-1234-1234-1234567890AB',
		category = '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 = '[[:hi:म्यूज़िकब्रैन्ज़|मुसिच्ब्रैन्ज़]]',
		label = 'कलाकार',
		regex = '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',
		remark = 'MusicBrainz is an open music encyclopedia that collects music metadata and makes it available to the public.'
	},
	{ 'MBAREA',
		property = 982,
		section = 8,
		example = '12345678-1234-1234-1234-1234567890AB',
		category = '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 = '[[:en:MBAREA (identifier)|मुसिच्ब्रैन्ज़]]',
		link = 'https://musicbrainz.org/area/$1',
		label = 'क्षेत्र',
		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',
		category = '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 = 'साधन',
		prefix = '[[:en:MBI (identifier)|मुसिच्ब्रैन्ज़]]',
		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',
		category = '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 = '[[:en:MBL (identifier)|मुसिच्ब्रैन्ज़]]',
		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',
		category = '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 = 'ठाउँ',
		prefix = '[[:en:MBP (identifier)|मुसिच्ब्रैन्ज़]]',
		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',
		category = '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 = 'रिलिज समूह',
		prefix = '[[:en:MBRG (identifier)|मुसिच्ब्रैन्ज़]]',
		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',
		category = '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 = 'श्रृंखला',
		prefix = '[[:en:MBS (identifier)|मुसिच्ब्रैन्ज़]]',
		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',
		category = '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 = 'काम',
		prefix = '[[en:MBW (identifier)|मुसिच्ब्रैन्ज़]]',
		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 = 'गणित वंशावली परियोजना',
		regex = '\d{1,6}',
		remark = 'Mathematics Genealogy Project is a web-based database for the academic genealogy of mathematicians.'
	},
	{ '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 = 'राष्ट्रिय अभिलेख (अमेरिका)',
		regex = '^([1-9]\d{0,8})$',
		remark = 'National Archives and Records Administration (NARA) is an independent agency of the United States government charged with preserving and documenting government and historical records.'
	},
	{ '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 = 'ताइवान',
		regex = '\d+',
		remark = 'National Central Library is the national library of Taiwan, Republic of China.'
	},
	{ '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 = 'जापान',
		regex = '(a1|s)?[0-9]?\d{8}',
		remark = 'Authority data listed in the catalog of the national library of Japan. Search also available via [http://viaf.org/ VIAF].'
	},
	{ '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 = 'एनजीए',
		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 = 'भिक्टोरिया',
		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 = 'चेक गणतन्त्र',
		remark = 'National Library of the Czech Republic ({{lang|cs|Národní knihovna České republiky}}) is the central library of the Czech Republic.'
	},
	{ '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 = 'अस्ट्रेलिया',
		remark = "NLA Trove's People and Organisation view allows the discovery of biographical and other contextual information about people and organisations. Search also available via [http://viaf.org/ VIAF]."
	},
	{ '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 = 'ग्रीस',
	},
	{ '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 = 'कोरिया',
		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 = 'रोमानिया',
		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 = 'क्रोएसिया',
		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 = 'नेदरल्याण्ड',
		regex = '\d{8}[\dX]'
	},
	{ 'ORCID',
		property = 496,
		section = 1,
		example = '0000-0002-7398-5483',
		prefix = '[[:en:ORCID (identifier)|ऊरसीआइदि]]',
		valid=p.orcidV,
		link = 'https://orcid.org/$1',
		remark = 'Authority data on researchers, academics, etc. The ID range is a subset of the [[ISNI]] range. For free text links (for example when mentioning a person on page which is not about them), it is also possible to use {{tl|ORCID}}. Authors—including Wikipedia editors—may obtain an ORCID by signing up at [https://orcid.org/register orcid.org/register]. Please take care not to confuse ORCID and ISNI identifiers.'
	},
	{ 'PIC',
		property = 2750,
		section = 4,
		example = '1',
		pattern = '^[1-9]%d*$',
		link = 'https://pic.nypl.org/constituents/$1',
		label = 'फोटोग्राफरको पहिचान',
		regex = '[1-9]\d*',
		remark = "PIC is a photographer's database. It is maintained by the New York Public Library."
	},
	{ '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 = 'पोल्याण्ड',
		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 = 'पोल्याण्ड',
		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 = 'पब्लन (अनुसन्धानकर्ताहरू)',
		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 = 'अनुसन्धानकर्ता आईडी',
		regex = '[A-Z]{1,3}-\d{4}-(19|20)\d\d',
		remark = 'An identifying system for scientific authors. The system was introduced in January 2008 by [[Thomson Reuters]]. The combined use of the [[digital object identifier]] with the ResearcherID allows for a unique association of authors and scientific articles.'
	},
	{ 'RISM',
		property = 5504,
		section = 8,
		example = 'pe30006410',
		prefix = '[[:en:RISM (identifier)|रिसम (फ्रान्स)]]',
		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 = '[[:en:RERO (identifier)|रेरो (स्विजरल्याण्ड)]]',
		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',
		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 = 'आरकेडी कलाकार (नेदरल्याण्ड)',
		regex = '[1-9]\d{0,5}',
		remark = 'RKDartists is an online database using a controlled vocabulary currently containing around 200,000+ names and other information about artists. Names in RKDartists may include given names, pseudonyms, variant spellings, names in multiple languages, and names that have changed over time (e.g., married names).'
	},
	{ 'RKDID',
		property = 350,
		section = 4,
		example = '123456',
		pattern = '^[1-9]%d?%d?%d?%d?%d?$',
		link = 'https://rkd.nl/nl/explore/images/$1',
		label = 'आरकेडी कलाकार (नेदरल्याण्ड)',
		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 = 'रुस',
		regex = '\d{1,9}',
		remark = 'Russian State Library ({{lang|ru|Российская государственная библиотека}}) is the national library of Russia.'
	},
	{ '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 = 'स्कोपस लेखक',
		regex = '[1-9]\d{9,10}',
		remark = 'SciVerse Scopus is a bibliographic database containing abstracts and citations for academic journal articles. It covers nearly 19,500 titles from over 5,000 international publishers, of which 16,500 are peer-reviewed journals in the scientific, technical, medical, and social sciences (including arts and humanities).'
	},
	{ 'SELIBR',
		property = 906,
		section = 2,
		example = '123456',
		pattern = '^[1-9]%d%d%d%d%d?$',
		link = 'https://libris.kb.se/auth/$1',
		label = 'स्वीडेन',
		regex = '[1-9]\d{4,5}',
		remark = 'Authority data from the [[National Library of Sweden]]'
	},
	{ '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 = 'सिकार्ट (स्विजरल्याण्ड)',
		regex = '\d{7,9}',
		remark = 'SIKART is a biographical dictionary and a database on visual art in Switzerland and Liechtenstein. It is published online by the Swiss Institute for Art Research (SIAR).'
	},
	{ '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 = 'सामाजिक सञ्जाल र अभिलेखीय सन्दर्भ',
		regex = '\d*[A-Za-z][0-9A-Za-z]*'
	},
	{ 'SUDOC',
		property = 269,
		section = 8,
		example = '026927608',
		prefix = '[[:en:SUDOC (identifier)|सुडोक (फ्रान्स)]]',
		pattern = '^%d%d%d%d%d%d%d%d[%dxX]$',
		link = 'https://www.idref.fr/$1',
		regex = '(\d{8}[\dX]|)',
		remark = 'Authority data of people listed in the general catalogue of the University Documentation System of France. Also available from [http://www.sudoc.abes.fr/xslt//DB=2.1/SET=2/TTL=1/LNG=EN/ English-speaking catalog] (search author, click one book, click author name, take PPN= value of the URL)'
	},
	{ '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 = 'टर्मिनोलोजिया एनाटोमिका',
		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 = 'इस्लाम अन्सिकलोपेडिसी',
		regex = '[0-9a-z/-]+'
	},
	{ 'TePapa',
		property = 3544,
		section = 3,
		example = '1',
		pattern = '^%d+$',
		link = 'https://collections.tepapa.govt.nz/agent/$1',
		label = 'ते पापा (न्युजिल्याण्ड)',
		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 = 'थिएटरलेक्सिकन (स्विजरल्याण्ड)',
		remark = '{{lang|de|Theaterlexikon der Schweiz}} (TLS) is an encyclopedia about theatre in Switzerland. It was developed by the Institute of Theatre Studies of the [[University of Berne]].'
	},
	{ 'Trove',
		property = 1315,
		section = 8,
		example = '12345678',
		prefix = '[[:en:Trove (identifier)|ट्रोभ (अष्ट्रेलिया)]]',
		pattern = '^[1-9]%d%d%d%d%d%d?%d?$',
		link = 'https://trove.nla.gov.au/people/$1',
		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 = 'बेलायत संसद',
		regex = '[a-zA-Z\d]{8}',
		remark = 'UK parliament member data'
	},
	{ '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 = 'कलाकारको नाम (गेटी)',
		regex = '500\d{6}',
		remark = 'ULAN is an online database using a controlled vocabulary currently containing around 293,000 names and other information about artists. Names in ULAN may include given names, pseudonyms, variant spellings, names in multiple languages, and names that have changed over time (e.g., married names).'
	},
	{ 'USCG',
		property = 3723,
		section = 7,
		example = '6-0695',
		prefix = '[[:en:USCG (identifier)|यूएससीजी]]',
		link2=p.uscgLink,
		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 = 'अमेरिकी कांग्रेस',
		regex = '[A-Z]00[01]\d{3}',
		remark = 'Biographical Directory of the United States Congress is a biographical dictionary of all present and former members of the United States Congress and its predecessor, the Continental Congress. Also included are Delegates from territories and the District of Columbia and Resident Commissioners from the Philippines and Puerto Rico.'
	},
	{ 'VcBA',
		property = 8034,
		section = 2,
		example = '494/9793',
		valid = p.vcbaV,
		link = 'https://opac.vatlib.it/auth/detail/$1',
		label = 'भ्याटिकन',
		regex = '\d{3}\/[1-9]\d{0,5}',
		remark = 'Vatican Library document data'
	},
	{ 'VIAF',
		property = 214,
		section = 1,
		example = '123456789',
		prefix = '[[:en:VIAF (identifier)|विअफ]]',
		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',
		remark = 'International authority data from the Online Computer Library Center (OCLC)'
	},
	{ 'WORLDCATID',
		property = 7859,
		section = 1,
		example = 'lccn-n78-95332',
		idlink = 'WorldCat Identities (identifier)',
		valid = p.worldcatidV,
		link = 'https://www.worldcat.org/identities/$1/',
		label = 'वर्ल्डक्याट',
		category = '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 = 'वर्ल्डक्याट (पुस्तकालय अफ कांग्रेस मार्फत)',
		suppressedbyproperty = {7859},
		category = '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 = 'वर्ल्डक्याट (पुस्तकालय अफ कांग्रेस मार्फत)',
		--suppressedbyproperty = {7859,214},
		--category = '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]*)?'
	},
}
p.sectionNames = {
	'साधारण',						-- 1
	'राष्ट्रिय पुस्तकालयहरू',			-- 2
	'कला दीर्घाओं र संग्रहालयहरू',	-- 3
	'कला अनुसन्धान संस्थानहरू',		-- 4
	'जीवनी शब्दकोशहरू',	-- 5
	'वैज्ञानिक डेटाबेसहरू',			-- 6
	'लाइटहाउस पहिचानकर्ताहरू',		-- 7
	'अन्य'							-- 8
}
return p