Modulo:Software/man: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
documentazione languageCategories e licenseCategories
 
(5 versioni intermedie di 3 utenti non mostrate)
Riga 21:
Per quanto riguarda essere [[software libero]]:
# Il template {{Tl|Software}} ha <code>SoftwareLibero=''sì''</code>?
# La voce è {{WikidataProp|P31|tipo=id}} {{WikidataEl|Q341|tipo=id}} / {{WikidataEl|Q1130645|tipo=id}}?
# Fra le licenze di questa voce espresse in {{WikidataProp|P275|tipo=id}} ce n'è una {{WikidataProp|P31|tipo=id}} di {{WikidataEl|Q3943414|tipo=id}}? ([[w:WP:EXPENSIVE|funzione parser dispendiosa]], vedi [[#Albero licenze Wikidata]])
 
Per quanto riguarda essere [[software proprietario]]:
# Il template {{Tl|Software}} ha <code>SoftwareLibero=''no''</code>?
# La voce è {{WikidataProp|P31|tipo=id}} {{WikidataEl|Q218616|tipo=id}} / {{WikidataEl|Q178285|tipo=id}}?
# Fra le licenze di questa voce espresse in {{WikidataProp|P275|tipo=id}} ce n'è una {{WikidataProp|P279|tipo=id}} di {{WikidataEl|Q3238057|tipo=id}}? ([[w:WP:EXPENSIVE|funzione parser dispendiosa]], vedi [[#Albero licenze Wikidata]])
 
=== specifiesALanguage ===
Riga 40:
# <code>sì</code>: questa voce dovrebbe (o potrebbe) mostrare l'etichetta dei linguaggi di programmazione. Vale per i [[Software libero|software liberi]] o se vi sono linguaggi specificati.
# <code>no</code>: la voce non dovrebbe (o non potrebbe) mostrare l'etichetta dei linguaggi di programmazione. Capita per [[software proprietario]] senza linguaggi noti.
 
;TODO: Da novembre 2018 questa funzione è inutilizzata e potrebbe essere rimossa.
 
=== languages ===
<pre>{{#invoke:Software|languages}}</pre>
 
Stampa i linguaggi di programmazione unendo i valori dal template con i valori da Wikidata dalla proprietà {{WikidataProp|P277|tipo=id}} e categorizzando:
 
;[[:Categoria:Software libero senza linguaggio]]: La voce potrebbedovrebbe mostrare linguaggi (adperché esempioè haun linguaggisoftware inlibero, Wikidata) peròma non lo lo fa. Probabilmente sono linguaggi non previsti nella [[#Configurazione|configurazione]].
;[[:Categoria:SoftwareP277 liberouguale senzasu linguaggioWikidata]]: La voce dovrebbe mostrareI linguaggi specificati softwarenel libero) ma non lo fa. Probabilmentetemplate sono linguaggipresenti nonidentici previstiin nella [[#Configurazione|configurazione]]Wikidata.
;[[:Categoria:LinguaggioP277 diletta programmazione uguale ada Wikidata]]: IIl linguaggitemplate specificatimostra nellinguaggi templateesclusivamente sonograzie presenti identici ina Wikidata.
;[[:Categoria:LinguaggioP277 didifferente programmazione letto dasu Wikidata]]: Il template mostraha linguaggi esclusivamenteche grazieWikidata anon Wikidataha (o viceversa).
;[[:Categoria:LinguaggioP277 diassente programmazione differente dasu Wikidata]]: Il template ha linguaggi che, Wikidata non ha (o viceversa)no.
;[[:Categoria:Linguaggio di programmazione assente su Wikidata]]: Il template ha linguaggi, Wikidata no.
;[[:Categoria:Linguaggio di programmazione da Wikidata non previsto]]: Capita quando in Wikidata c'è un linguaggio assente nella [[#Configurazione|configurazione]].
 
Line 59 ⟶ 60:
}}
 
=== languageCategories ===
== Considerazioni implementative ==
<pre>{{#invoke:Software|languageCategories}}</pre>
 
Categorizza la voce in base ai suoi linguaggi di programmazione espressi in Wikidata (usata internamente in <code>[[#languages]]</code>).
 
{{Cassetto
|titolo = Software per linguaggio di programmazione
|testo = <categorytree>Software per linguaggio di programmazione</categorytree>
}}
 
=== licenseCategories ===
<pre>{{#invoke:Software|licenseCategories}}</pre>
 
Categorizza la voce in base alle licenze con cui è distribuito il software.
 
{{Cassetto
|titolo = Software per licenza
|testo = <categorytree>Software per licenza</categorytree>
}}
 
== Considerazioni implementative ==
=== Albero licenze Wikidata ===
Ricostruzione dell'albero inverso delle licenze presenti in Wikidata:
Line 67 ⟶ 87:
|Albero delle licenze
|
* {{WikidataEl|Q207621|tipo=id}} <!-- licenza -->
** {{WikidataProp|P279|tipo=id}} <!-- sottoclasse di -->
*** {{WikidataEl|Q1156659|tipo=id}} <!-- licenza open source -->
**** {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
***** {{WikidataEl|Q7603|tipo=id}} <!-- GNU GPL --> [[#Albero GNU GPL]]
***** {{WikidataEl|Q334661|tipo=id}} <!-- licenza MIT -->
***** {{WikidataEl|Q191307|tipo=id}} <!-- licenza BSD --> [[#Albero BSD]]
*** {{WikidataEl|Q3943414|tipo=id}} <!-- licenza di software libero -->
**** {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
***** {{WikidataEl|Q26245522|tipo=id}} <!-- Eclipse Distribution License -->
***** {{WikidataEl|Q7603|tipo=id}} <!-- GNU GPL --> [[#Albero GNU GPL]]
**** {{WikidataProp|P279|tipo=id}} <!-- sottoclasse di -->
***** {{WikidataEl|Q1437937|tipo=id}} <!-- licenza di software libero permissiva -->
****** {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
******* {{WikidataEl|Q334661|tipo=id}} <!-- licenza MIT -->
******* {{WikidataEl|Q191307|tipo=id}} <!-- licenza BSD --> [[#Albero BSD]]
******* {{WikidataEl|Q616526|tipo=id}} <!-- licenza Apache -->
******* {{WikidataEl|Q308915|tipo=id}} <!-- licenza MPL -->
*** {{WikidataEl|Q3238057|tipo=id}} <!-- licenza di software non-libero -->
**** {{WikidataProp|P279|tipo=id}} <!-- sottoclasse di -->
***** {{WikidataEl|Q725920|tipo=id}} <!-- EULA -->
****** {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
******* {{WikidataEl|Q28914702|tipo=id}} <!-- Microsoft EULA -->
 
=== Albero GNU GPL ===
Notare che {{WikidataEl|Q7603|tipo=id}} è reputato con i medesimi valori sia per {{WikidataProp|P31|tipo=id}} che per {{WikidataProp|P279|tipo=id}}, in quanto per alcuni è considerata una vera e propria licenza, mentre per altri una sottoclasse di licenze. [[d:Talk:Q308915]].
 
* {{WikidataEl|Q7603|tipo=id}} <!-- GNU GPL -->
* {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
*** {{WikidataEl|Q10513452|tipo=id}} <!-- GNU GPL v1 -->
*** {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
***** {{WikidataEl|Q27016750|tipo=id}} <!-- GNU GPL v1+ -->
*** {{WikidataEl|Q10513450|tipo=id}} <!-- GNU GPL v2 -->
**** {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
***** {{WikidataEl|Q27016752|tipo=id}} <!-- GNU GPL v2+ -->
*** {{WikidataEl|Q10513445|tipo=id}} <!-- GNU GPL v3 -->
**** {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
***** {{WikidataEl|Q27016754|tipo=id}} <!-- GNU GPL v3+ -->
*** {{WikidataEl|Q1131681|tipo=id}} <!-- GNU AGPL -->
**** {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
***** {{WikidataEl|Q27017230|tipo=id}} <!-- GNU AGPL v1 -->
***** {{WikidataEl|Q27017232|tipo=id}} <!-- GNU AGPL v3 -->
****** {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
******* {{WikidataEl|Q27020062|tipo=id}} <!-- GNU AGPL v3 -->
 
=== Albero BSD ===
* {{WikidataEl|Q191307|tipo=id}} <!-- licenza BSD -->
** {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
*** {{WikidataEl|Q18491847|tipo=id}} <!-- 3-clause BSD -->
 
=== Albero caso peggiore ===
Attualmente il "caso peggiore" per identificare un'{{WikidataProp|P31|tipo=id}} {{WikidataEl|Q3943414|tipo=id}} sembra essere il seguente (albero in cascata):
 
{{WikidataEl|Q27020062|tipo=id}} <!-- GNU AGPL v3 -->:
* {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
* {{WikidataEl|Q27017232|tipo=id}} <!-- GNU AGPL v3 -->
** 1ª sotto-richiesta:
** {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
** {{WikidataEl|Q1131681|tipo=id}} <!-- GNU AGPL -->
*** 2ª sotto-richiesta:
*** {{WikidataProp|P31|tipo=id}}
*** {{WikidataEl|Q7603|tipo=id}} <!-- GNU GPL -->
**** 3ª sotto-richiesta:
**** {{WikidataProp|P31|tipo=id}} <!-- istanza di -->
**** {{WikidataEl|Q3943414|tipo=id}} <!-- licenza di software libero --> {{SI}}
 
È perciò possibile limitare un massimo livello di ricorsione a 3 fintanto che questa struttura rimane invariata.
Line 139 ⟶ 159:
{{Vedi anche|Modulo:Software/Configurazione}}
 
Per cambiare il modo in cui è mostrato un linguaggio o una licenza, prova a guardare in [[Wikidata]] tale linguaggio o tale licenza. Considera anche che se il nome in Wikidata è troppo lungo, è scelto il {{WikidataProp|P1813|tipo=id}}.
 
Per aggiungere una categoria di un linguaggio, o una licenza, vedi [[Modulo:Software/Configurazione]].
 
{{Cassetto | Note storiche |
Fino a marzo 2017 per cambiare il wikilink alla voce del linguaggio o mostrare banalmente "[[C (linguaggio)|C]]" al posto di "[[C (linguaggio)]]" occorreva modificare il [[Template:Software/Linguaggio]] considerando complesse sotto-inclusioni del [[Template:Software/L]]. Inoltre ora non occorre più mantenere parallelamente la documentazione in [[Template:Software#Linguaggi]] perchè è generata. Prima era [[Template:Software/Linguaggio/man]].
}}