Questa configurazione permette la categorizzazione automatica per linguaggio di programmazione e per licenza delle voci che utilizzano il template {{Software}}.

Vale anche per le categorie che utilizzano il template {{Categoria software}}.

Linguaggi di programmazione

Ogni voce può avere linguaggi di programmazione espressi sia in Wikidata alla proprietà linguaggio di programmazione (P277), oppure può averlo espresso direttamente nel template {{Software}} tramite alcuni parametri.

Aggiunte

Per aggiungere un linguaggio, bisogna in primis aggiungere una nuova riga in config.language, variando alcuni parametri a seconda di quante categorie abilitare per tale linguaggio.

Linguaggio poco diffuso

In particolare, questa riga permette la categoria Categoria:Software in Action!:

Q343587 = langcat('Action!')

Notando che Q343587 è il codice dell'elemento Wikidata Action! (Q343587).

Linguaggio discretamente diffuso

Questa permette la categoria Categoria:Software in Delphi ed eventualmente Categoria:Software libero in Delphi:

Q487378 = langcat('Delphi', true)
Linguaggio diffuso

Questa permette la categoria Categoria:Software in C ed eventualmente Categoria:Software libero in C e Categoria:Software proprietario in C:

Q15777 = langcat('C', true, true)

Inoltre, è necessario aggiungere una nuova riga in config.languageSlugToWikidata inserendo:

['alias del linguaggio per il parametro del template'] = 'proprietà del linguaggio su Wikidata',

quindi, ad esempio:

['action'] = 'Q343587',

con la possibilità di includere anche le varianti:

['action!'] = 'Q343587',

Licenze

Le licenze sono lette dalla proprietà Wikidata licenza (P275).

La configurazione config.licenseCategory serve a creare una categoria associata ad una certa licenza. Alcune licenze minori possono convergere.

Esempio

Se la voce ha licenza (P275)=licenza MIT (Q334661) allora sarà categorizzata in Categoria:Software con licenza MIT grazie a questa riga:

config.licenseCategory = {Q334661 = 'MIT'}
Abbreviata

Se la categoria della licenza è in una forma abbreviata si deve aggiungere l'eccezione in config.licenseCategoryShorter. Ad esempio:

config.licenseCategoryShorter = { Q178285 = 1}

Se la voce ha la licenza freeware (Q178285) allora si avrà la Categoria:Software freeware invece che Categoria:Software con licenza freeware.

Librerie

Al momento le librerie sono recuperate dalla proprietà toolkit o framework dell'interfaccia grafica (P1414) e trattate in maniera riconducibile ai #Linguaggi di programmazione.

Pagine correlate


local config = {}

--[[
* Qualificatori Wikidata associati ai codici per il Template:Software/Linguaggio
]]
config.wikidataToLanguageSlug = {
	['Q154755']  = 'ada',
	['Q343587']  = 'action!',
	['Q165436']  = 'assembly',
	['Q189248']  = 'bash',
	['Q42979']   = 'basic',
	['Q15777']   = 'c',
	['Q2407']    = 'c++',
	['Q2370']    = 'c#',
	['Q487378']  = 'delphi',
	['Q334879']  = 'erlang',
	['Q83303']   = 'fortran',
	['Q37227']   = 'go',
	['Q504453']  = 'groovy',
	['Q34010']   = 'haskell',
	['Q8811']    = 'html',
	['Q2053']    = 'html5',
	['Q251']     = 'java',
	['Q2005']    = 'javascript',
	['Q132874']  = 'lisp',
	['Q207316']  = 'lua',
	['Q188531']  = 'objective-c',
	['Q633894']  = 'object pascal',
	['Q81571']   = 'pascal',
	['Q59']      = 'php',
	['Q28865']   = 'python',
	['Q42478']   = 'perl',
	['Q2044345'] = 'pl',
	['Q161053']  = 'ruby',
	['Q460584']  = 'scala',
	['Q187560']  = 'scheme',
	['Q5301']    = 'tex',
	['Q201904']  = 'qt',
	['Q5288']    = 'tcl',
	['Q1138939'] = 'vala',
	['Q726218']  = 'xul'
}

--[[
* Alias da mantenere per ragioni storiche del Template:Software/Linguaggio
]]
config.languageSlugAlias = {
	['action']             = 'action!',
	['c ++']               = 'c++',
	['cpp']                = 'c++',
	['c sharp']            = 'c#',
	['c #']                = 'c#',
	['embarcadero delphi'] = 'delphi',
	['js']                 = 'javascript',
	['objective c']        = 'objective-c',
	['pl']                 = 'pl',
	['pgsql']              = 'pl',
	['pl-pgsql']           = 'pl',
	['pl/pgsql']           = 'pl'
}

--[[
* Categoria:Software in licenza $1
* Vediamo se proseguire con questa configurazione o se fruire della proprietà Wikidata short name P1813
]]
config.licenseCategory = {
	['Q7603']      = 'GNU GPL',
	['Q27126812']  = 'GNU GPL v1',
	['Q27016750']  = 'GNU GPL v1+',
	['Q10513450']  = 'GNU GPL v2',
	['Q27016752']  = 'GNU GPL v2+',
	['Q10513445']  = 'GNU GPL v3',
	['Q27016754']  = 'GNU GPL v3+',
	['Q1131681']   = 'GNU AGPL',
--	['Q27017230']  = 'GNU AGPL v1',
	['Q27017232']  = 'GNU AGPL v3',
	['Q27020062']  = 'GNU AGPL v3+',
	['Q616526']    = 'Apache',
	['Q334661']    = 'MIT',
	['Q191307']    = 'BSD'
}

return config