Discussioni progetto:Qualità/Proposte tecniche
|
|
Gli altri bar tematici
|
Proposta Bot
Premetto, io non so programmare, conosco solo appena i fondamenti, e a mala pena so leggere uno psudocodice semplice.
Comunque ci provo lo stesso:
vi chiedo se è possibile creare un bottolo (da fare girare quando si vuole) che CONTI i testi di ogni singolo progetto, in base a
|TitoloSezione=(VOID)
Se non erro, infatti, tutte le prime pagine hanno quel parametro vuoto. Una versione grezza del bottolo utilizzerebbe i regex {{NOMEPROGETTO + {{|TitoloSezione=\n}} (credo, è tutto da verificare) Mi vengono in mente due modalità:
- un bot unico, che conti tutti assieme i testi di tutti i progetti, e magari, alla fine, stampi una tabella.
- un bot singolo che, prendendo con input da utente il nome del progetto, conti le opere di quello. Bisognerebbe sommare alla fine tutte.
Nella mia mente di programmatore naif immagino il primo con vari if (uno per ogni {{NOMEPROGETTO ) e contatori che alla fine ci daranno il numero di testi. Il secondo dovrebbe essere più semplice, e sarebbe bello che fosse proprio user-friendly, con una casellina che chiede di quale progetto si vogliono contare i testi. Ho qualche idea di come si potrebbe strutturare la cosa, ma intanto chiedo se una cosa del genere è fattibile, per cui, lascio la parola ad iPork e Qualc1 ;). --Aubrey McFato 00:37, 7 giu 2007 (CEST)
- Sto cercando un approccio diverso. Il punto è questo: ad oggi ci sono già programmi per contare quanti testi utilizzano un template e generano un resoconto, ma manca qualcosa per contare quando due o più template sono usati insieme. Se si riuscisse in una cosa del genere risolveremmo il problema del conteggio preciso delle opere. Quelle che hanno, ad esempio il template Tl|opera e Qualità testo avremmo il numero di opere letterarie. Altro approccio cercato, contare le pagine di discussione che usano il template infotesto. Solo che il sistema è stupido e conta pure quelle che rimandano al template, ovvero le sottopagine. Altro approccio tentato, il conteggio dei files nelle categorie, e da qui io partirei per iniziare. Ovvero un bot che permetta, una volta indicate tot categorie di creare già formattate le informazioni per le statistiche (pensa alla tabella con i testi di qualità). Ma per questo sto aspettando informazioni da chi ne sa più di me. Come vedi le possibilità ci sono, ma per ora nessuna che ci porti ad una soluzione definitiva. -- iPork → scrivimi 19:04, 13 giu 2007 (CEST)
- Bene, l'idea di una sistema per creare da subito le tabelle compilate era venuta anche a me, ma non ho specificato per non mettere troppa carne al fuoco. Il mio paramentro per contare le prime pagine è forse stupido, però mi sembra sia , in qualche modo, ben definito: non lo so dimostrare, ma mi sembra che potrebbe funzionare. ::Gli approcci che tu hai detti sono più belli e razionali, se si riuscisse io farei dei controlli incrociati, così da vedere se ce n'è qualcuno che funziona meglio di altri, e se ci sono risultati corretti. Questo quando riusciremo a fare il bottolo. Aspettiamo comunque anche l'intervento di Qualc1. --Aubrey McFato 00:22, 14 giu 2007 (CEST)
- Qui una idea per risolvere l'arcano. -- iPork → scrivimi 20:33, 18 giu 2007 (CEST)
- Bene, l'idea di una sistema per creare da subito le tabelle compilate era venuta anche a me, ma non ho specificato per non mettere troppa carne al fuoco. Il mio paramentro per contare le prime pagine è forse stupido, però mi sembra sia , in qualche modo, ben definito: non lo so dimostrare, ma mi sembra che potrebbe funzionare. ::Gli approcci che tu hai detti sono più belli e razionali, se si riuscisse io farei dei controlli incrociati, così da vedere se ce n'è qualcuno che funziona meglio di altri, e se ci sono risultati corretti. Questo quando riusciremo a fare il bottolo. Aspettiamo comunque anche l'intervento di Qualc1. --Aubrey McFato 00:22, 14 giu 2007 (CEST)
Proposta di modifica degli scripts di iPork
- nella funzione Cerca e sostituisci, si potrebbe mettere come opzionale l'utilizzo delle regex? Spesso infatti non si riescono ad effettuare sostituzioni semplici, che però utilizzano caratteri presenti nella sintassi regex. Si potrebbe mettere una casellina che abiliti le espressoni regolari (anzi, italianizziamo anche queste,va là ;)) --Aubrey McFato 12:20, 11 giu 2007 (CEST)
- È possibile ma non rapidamente. Per le caseline ci sto ragionando da tempo, solo che sono di complicata realizzazione, o meglio, è complicato farlo in modo semplice. Per una prossima versione delle tendine lo terrò in considerazione. -- iPork → scrivimi 12:27, 11 giu 2007 (CEST)
- Io no ho fretta :). --Aubrey McFato 12:38, 11 giu 2007 (CEST)
- È possibile ma non rapidamente. Per le caseline ci sto ragionando da tempo, solo che sono di complicata realizzazione, o meglio, è complicato farlo in modo semplice. Per una prossima versione delle tendine lo terrò in considerazione. -- iPork → scrivimi 12:27, 11 giu 2007 (CEST)
Switch per immagini nelle ricorrenze
Ehm, della serie "armiamoci e partite"... ho un'idea ma non mi ci metto a praticarla, se vi piace pensateci voi:
- Avete presente il template switch, quello delle immagini in intestazione del bar? Sì
- Le nostre ricorrenze giorno per giorno compaiono nella pagina principale? sì
- E' possibile associare a un giorno una immagine in modo che compaia nella pagina principale quando l'autore citato in tale ricorrenza ha una immagine nella sua pagina? Penso di sì
- Se poi in un giorno ci sono (e certamente vi saranno in futuro) più ricorrenze, è possibile far ruotare più immagini ad ogni visita tramite il template switch? Velleitario al momento ma penso di sì.
- Sono un visionario che mentre culla la bambina pensa ai template della pagina principale? Mmmmm.... nnnnnnsnì! XD - εΔω 10:32, 30 giu 2007 (CEST)
to switch or not to switch
cari codificatori,
mi sono accorto che su Pedia a seguito di questa interessante discussione hanno eliminato il template switch. Di tutta la vicenda ho capito più o meno "la metà meno uno", ma credo che la questione non vada sottovalutata. La sottopongo dunque agli informatici perché provino a capirci qualcosa e spiegarmi / spiegarci se abbiamo qualcosa da aggiornare (magari solo con un giro di bot come hanno fatto su pedia). - εΔω 18:43, 2 lug 2007 (CEST)
che Qif!
Cari programmatori,
Ho inserito una richiesta di parere qui. - εΔω 18:14, 3 ott 2007 (CEST)
- Caro Edo, se avessi una vaga idea di cosa stai parlando ti aiuterei. ;-) Aubrey McFato 22:34, 6 ott 2007 (CEST)
Bot
Ma noi non abbiamo un bel bottolo che inserisca gli interlink? Io non ho mai capito come funzionino i bot da interlink, ma sicuramente ci farebbe comodo. Aubrey McFato 22:34, 6 ott 2007 (CEST)
- Ehm, temo che la questione sia per noi assai più complessa che per Pedia. Mentre le varie enciclopedie possono contare su un nucleo sufficientemente alto di voci "comuni" o trattanti lo stesso oggetto, per noi la diversità è la norma, e gli interlink si applicano solo alle traduzioni (che, riflettendoci, non costituiscono la maggioranza del patrimonio delle nostre source) e ai rispettivi autori. Aggiungi che gli interwiki bot di Pedia fanno riferimento alle voci pesenti su en.wiki confrontandole con quelle presenti su altre Pedie; in quel caso la logica è sensata in quanto en.wiki ha sicuramente una mole di articoli tale da fare da "pivot" per i bot alla ricerca di corrispettivi stranieri alle voci già presenti su en.wiki, ma anche in questo caso la nostra logica è completamente diversa, in quanto non solo en.source non ha tutte le traduzioni di tutto quello che circola nelle altre source, ma anzi è più probabile che avvenga il contrario (e nel campo letterario mi spiace ma la mole della nostra produzione è strabordantemente superiore alla loro). Infine ti faccio presente che per il corretto funzionamento di questo automatismo è necessario che il bot sia registrato su tutte le Wiki che scandaglia (ma di questo non sono certissimo, parlo per esperienza Pediana e vendendo Zumg presente un po' dappertutto. Se infine noti che dall'estero gli interwiki finora ci sono messi per lo più da utenti "umani"... credo che si lavori ancora a manina. Ovviamente spero di sbagliarmi e che in realtà sia tutto più facile. --εΔω 00:03, 7 ott 2007 (CEST)
Stringa regex da conservare per il futuro
Ho scritto un piccolo procedimento per inserire, nell'indice di un libro in versione testo a fronte (uno a caso, questo), i wikilink fra pagina indicata nell'indice e pagina su Wikisource. Gli esempi li trovate qui, qui, qui, qui. Il procedimento, buggatissimo e non completo, qui. Sono graditi feedback e pomodori. Ne approfitto per caldeggiare, in tempi un po' più calmi, una bella pagina che contenga una lista di regex utili per compiti lunghi e noiosi. Voi intanto pensate a dove metterla che per iniziare ci incollo la mia, dopo. Aubrey McFato 01:30, 9 ott 2007 (CEST)
Template di archiviazione automatica
ho una propostina simpatichina che potrebbe diventare realtà: quello che dice il titolo.
Dato che il nostro technogeek si è creato la classe Hopframe per i suoi iPorki comodi non vedo perché non sfruttarla anche fuori dalla sua pagina utente: ho scopiazzato il suo sistemino di archiviazione e lo sto elaborando in una mia sandbox. La mia idea sarebbe quella di trasformarlo in un template in grado di assumere i colori di default della pagina (o del progetto) in cui è inserito, e di creare una tabella automatica dei mesi e degli anni per infilarci dentro i vari archivi. A suon di espressioni regolari, parametri facoltativi e parserfunctions dovrebbe essere possibile ottenere qualcosa di adattabile a qualunque pagina, ma mentre io ci impiegherei mesi e mesi di trial & error, forse qualcun altro potrebbe arrivarci in due secondi o almeno suggerire la strada da percorrere. Infine perché non creare un template "cassetto retrattile" / "cassetto a molla" per questo nuovo tipo di giochino? - εΔω 18:48, 17 ott 2007 (CEST)
- Aggiornamento Penso di aver ottenuto un decente compromesso: con il solo parametro dell'anno il template genera ora in automatico i link alle pagine mensili per l'anno designato, dunque ogni anno basterà aggiungere un nuovo template che andrà a porsi sotto il precedente: per vederlo all'opera provate proviamo a varare la pagina Discussioni Progetto:Qualità/Proposte tecniche/Archivio.Per come è proposto ora deve essere posizionato in pagine che contengano la finale /Archivio, ma chiederei a chi ha più esperienza
- se vale la pena introdurre parametri per bordi e sfondo in modo da adattare i colori a ciascun progetto
- se la forma "Archivio/2007/04" renda l'idea del mese di aprile del 2007 o se sia preferibile usare i nomi dei mesi per esteso - εΔω 00:28, 24 nov 2007 (CET)
Autori e testi citati... ancorabili
Una pregunta:
ho aggiunto ai template AutoreCitato e TestiCitato uno <span id="{{{1}}}>...</span> in modo da renderli ancorabili: ora si può mandare il lettore proprio al punto esatto in cui (per fare un esempio) Rapisardi cita Saffo: basta seguire il link La poesia filosofica#Saffo; l'importante è mettere dopo il "#" il nome della pagina dell'autore. Carino no? A me pare utilissimo in testi assai estesi (come la Storia della letteratura italiana di De Sanctis).
Non ho però testato il caso in cui lo stesso autore (e dunque la stessa ancora) appaia più volte nello stesso testo. In caso di confusione non saprei come risolvere il problema... --εΔω 00:47, 24 nov 2007 (CET)
- Grande Edo, idea geniale. Dopo ci testo il sistema, ma l'idea mi piace assai. Credo sia proprio verso quest'idea di iperbiblioteca che dobbiamo lavorare... E' una cosa che non ha nessun altro, e che nessuna bibloteca normale può fare. Aubrey McFato 13:19, 24 nov 2007 (CET)
Automatizzazione
Scrivo qui due ideuzze, per non perderle ed eventualmente per discuterne. Sono banali se volete ma secondo me rispecchiano alcuni punti un po' spinosi del nostro funzionamento, e sarebbe utile riuscire a rendere le cose più user-friendly (anche solo per gli stessi botolatori che spessissimo non sanno programmare o si fanno scoraggiare facilmente, anche perchè ora come ora scarseggiano).
- Creazione di un bot/programmino semplice che faccia cambiare i riferimenti nel template capitolo. Se un utente si sbaglia con il titolo di un'opera, e si spostano le pagine in massa, questo è un lavoro estremamente noioso e lungo da fare, si preferisce non farlo, e si rimane con i redirect dalla pagina errata a quella giusta per evitarsi lo sbattimento.
- In generale il template tl|capitolo è il nostro tallone d'achille. E' il più tignoso che esista, e se per caso la gente si sbaglia sono guai seri: il lavoro da fare raddoppia e spesso viene lasciato lì. Per esempio: in molte poesie inserite alle origini di Wikisource il template tl|capitolo è solo in basso, e non in alto. Oppure non è stato messo. Riuscire ad automatizzare la cosa farebbe secondo me molto bene al progetto.
- Analogamente, rendere più completo e usabile il vecchio bot di qualc1 per l'inserimento dei testi, rendendolo modulare e aggiornabile con i vari template {{intestazione}}, potrebbe essere molto utile.
Non abbiamo fretta, ma credo che l'automatizzazione delle azioni più semplici MA noiose di Wikisource sia una priorità per il nostro progetto. Avere anche solo pochi utenti ma che sappiano usare questi strumenti ci permetterebbe di occuparci del lavoro sporco ed eventualmente del patrolling, ma Wikisource crescerebbe ad una velocità veramente elevata. Ditemi cosa ne pensate, se esagero oppure no, e se Qualc1 è in ascolto, io sono pronto per iniziare il lavoro ;-)
A presto, --Aubrey McFato 19:37, 16 apr 2008 (CEST)
Sempre ideuzze
Sempre per quel che riguarda l'ottimizzazione, è possibile teoricamente la creazione di un tool che permettta di fare ricerche incrociate? Mi spiego. Quando dobbiamo cercare per esempio delle categorie richieste, ci vengono presentate tutte quante insieme. Se invece io volessi soltanto quelle che iniziano con Testi in cui è citato..., dovrei comunque scorrermele tutte e trovare quelle che mi servono. In questo caso, per nostra fortuna, i numeri delle pagine sono ancora fattibili, ma in altri casi le ricerche incrociate sarebbero utilissime, anche solo fra cateorie (e non pagine speciali). quello che mi chiedo è: qualcuno ci ha mai pensato alle ricerche su intersezioni di categorie, di categorie e pagine speciali, di pagine speciali che iniziano con una frase deterinata? Mi piacrebbe sapere se teoricamente tutto ciò è possibile, ma da chiedere ai dev, se si può delegare ad un tool esterno, se semplicemente esagero. --Aubrey McFato 11:25, 17 apr 2008 (CEST)
- L'intersezione tra categorie è una funzionalità già installata da parecchio tempo sui software di wikimedia ed è usata quotidianamente da wikinews. Trovi qui su meta una guida all'uso oppure qui su wikinews un'applicazione (ogni sezione è un'intersezione tra la categoria italia e le categorie di argomenti); la mia conoscenza su DPL finisce qui, però è un inizio :-D --Ramac (disc.) 20:15, 19 apr 2008 (CEST)
- Ottimo. Mi piacerebbe sapere cosa ne pensano gli altri, così magari facciamo la richiesta ai dev. Aubrey McFato 10:55, 1 mag 2008 (CEST)
Iperbiblioteca
La nostra biblioteca diventa sempre più ipertestuale, e credo sia veramente un'ottima cosa. I nuovi utenti stanno imparando egregiamente a sfruttare le potenzialità di una biblioteca wiki, aprendo prospettive che neanche noi utenti di vecchia data ci eravamo immaginati. Tutto questo mi convince sempre di più della bontà della nostra impostazione e del roseo futuro del progetto, se solo sapessimo cogliere l'occasione. Mi viene dunque da aggiungere altra carne al fuoco, aprendo un piccolo dibattito su cos'altro possiamo fare con la nostra piccola iperbiblioteca. Iniziando con un basso profilo, mi chiedo se non potremmo modificare in qualche modo i template {{AutoreCitato}} e {{TestoCitato}} in modo da far si che si crei automaticamente una categoria Testi/Autori che sono citati nel testo TALE. Forse inserendo un <noinclude>[[Categoria:Testo citato in {{PAGENAME}}]]</noinclude>, non saprei sinceramente. Sarebbero prove tecniche per arrivare a degli Indici (analitici, degli autori, bibliografici) che, IMHO, sono un obiettivo importante che dobbiamo perseguire. Fanno parte di quei servizi che le biblioteche digitali per ora non offrono e che nel mondo analogico sono utili ma limitati fortemente dalle ovvie restrizioni fisiche. Immaginiamo un bot che passa su un libro, riesce a cogliere la frequenza delle parole e farne una classifica, e poi gli utenti che passano e in una pagina a parte sfrondano delle parole più inutili tale classifica per creare un indice analitico... Il massimo sarebbe avere ogni parola ancorabile, ma non sono scuro sia possibile (come funziona il Traoa in questa pagina del browser? A noi serve una cosa del genere...), in modo da poter tornare dall'indice alla parola cercata nelle varie pagine.
Insomma, spero di avervi messo una pulce nell'orecchio. Ditemi se vi sembrano voli pindarici, mere cazzate o altro. Glasie. Aubrey McFato 10:55, 1 mag 2008 (CEST)
- A caldo non vedo fattibile quanto proponi modificando i template. Si dovrebbe lavorare ad un programma che si giri le varie opere, spulci i contenuti alla ricerca del template e crei un elenco delle pagine suddivise per autore. Mi pare fattibile via js sul modello di ciò che già facciamo per gli autori. Da sentire Pietrodn. PS: ottima idea davvero! -- iPork → scrivimi 11:16, 1 mag 2008 (CEST)
Betatester
Visto che Edo mi ha nominato betatester ecco le prime due cavolate (ma poi smetto, tranquilli :)
- La "Tabella degli Autori" è ancora valida? Lo chiedo perché l'Indice alfabetico, esempio alla "B", contiene 48 autori; da Baccini a Di Breme mentre la Tabella ne porta solo 13. Prima di inserire qualcosa mi piacerebbe sapere che non sto martellandomi le dita.
- Più tecnica, l'ho buttata là a IPork qualche giorno fa ma è in ferie (poverino ne ha bisogno, arguisco). Nel recente passato ho inserito due piccole cose Concessione della strada ferrata centrale italiana e il relativo Capitolato della strada ferrata Centrale italiana. Però i due testi sono (ovvio) strettamente collegati. Sorge la domanda: non sarebbe il caso per simili coincidenze, avere un qualche tipo di rimando più "visibile" che indirizzi il fruitore? Qualcosa meno pugno nell'occhio del "vedi anche" di Pedia ma che "si noti". (Oppure c'è già?) Grazie. Vale!--Horatius (disc.) 22:00, 4 ago 2008 (CEST)
- Per la prima ti rispondo io: la tabella degli autori è ancora valida, magari da aggiornare con gli ultimi autori inseriti. Da notare però che la tabella degli autori mette in ordine alfabetico per nome, invece le categorie e gli indici per cognome, quindi il tuo confronto 48/13 non è valido. certo è che la tabella deve essere aggiornata continuamente e serve proprio per avere sotto controllo la situazione complessiva. Ciao, --Accurimbono (disc) 16:32, 11 set 2008 (CEST)
Il bar dei picchiatelli
Proponevo ad Aubrey un "bar dei picchiatelli" dove trovarmi a mio agio e Aubrey mi ha detto che questo potrebbe, in qualche modo, essere adibito a tale utilizzo. Chi mi segue sa che ho interpretato in modo un pochino estensivo la raccomandazione "Be bold!" e quindi annoterò qui qualsiasi cosa mi venga in testa di adatto al luogo. --Alex brollo (disc.) 15:25, 15 gen 2009 (CET)
Intersezione di categorie
Non trovo più l'indicazione di come effettuare la ricerca per "intersezione di categorie". Da qualche parte avevo trovato la spiegazione della procedura attiva. C'è qualcuno che sa dove sta? Se la trovo, e verifico che qui funziona, c'è da lavorarci sopra. --Alex brollo (disc.) 15:54, 15 gen 2009 (CET)
- Io ho trovato questo: http://en.wikipedia.org/wiki/Wikipedia:CI --Aubrey McFato 17:52, 15 gen 2009 (CET)
- Io ricordo che su 'News hanno già qualcosa di simile che usano per i portali tematici, chiamato "DynamicPageList". A noi farebbe un sacco comodo. - εΔω 19:17, 15 gen 2009 (CET)
- Eccolo trovato:
Using MediaWiki search to find category intersections
From April,2008 it is possible to use the Search tool to find category intersections; however, this facility does not look inside subcategories. To find a category intersection, type +incategory:"CategoryName" in the search box for each category of interest. For example +incategory:"Suspension bridges" +incategory:"Bridges in New York City" will return the articles that are common to both categories — the suspension bridges in New York City.
da: en:Wikipedia:Category intersection (section)
Intercategory funziona anche qui!
Andate nella casella della ricerca e scrivete: incategory:"Sonetti". Le pagine che sono elencate nella categoria Sonetti vengono elencate come risultato della ricerca: cosa diversa da come sono elencate cercandole nella categoria.
Adesso nella casella scrivete +incategory:"Sonetti" +incategory:"Testi del XVIII secolo". Il risultato della ricerca sarà l'intersezione della categorie: l'elenco delle 7 opere che contemporaneamente appartengono alle due categorie.
Esiste anche un OR: incategory:"Sonetti" OR incategory:"Odi" che sono i sonetti + le odi .
Il sistema non funziona sempre. Non ho ancora capito perchè, nel dettaglio; sarebbe da capirlo bene per costruire delle categorie appropriate. Mi sembra di capire che pesca sempre le categorie esplicite, quelle scritte con il tag [[Categoria:]] sulla pagina, mentre non pesca sempre le categorie "implicite", quelle generate on the fly da un template. In ogni caso, se si volesse utilizzare questo strumento, occorrerebbe riflettere un po' sul principio "niente attribuzione di un oggetto ad una categoria più generale se esiste una categoria più specifica". Bisognerebbe invece accertarsi di assegnare esplicitamente ogni oggetto ad alcune categorie principali, da identificare con una buona spremitura di meningi, e da usare per tutte le possibili intersezioni.
Nota: non è necessario che gli elementi dell'intersezione siano due, possono essere di più. --Alex brollo (disc.) 10:14, 17 gen 2009 (CET)
Ipotesi di lavoro
Sono molto eccitato dalle possibilità delle incategory, anche se andranno spiegate per bene per non spaventare nessuno. Provo a buttare giù le "categorie principali" sviluppando quelle per gli Autori
- opere
- persone
Persone si classificano in queste ctegorie: genere:
- uomini
- donne
categoria:
- autori
- traduttori
Nazionalità:
- italiani
- latini
- greci
- ...
(una ventina di categorie)
"professione":
- letterati
- poeti
- romanzieri
- ...
(altra ventina di categorie)
Fino a questo punto sono 25 categorie, che generano moltissime intersezioni: 2x2x20x20: 1600. Aggiungiamo 25 secoli di attività: le categorie diventano 50, le loro possibili intersezioni 1600x25= 40.000. Cosa ne dite? Ci mettiamo a scrivere 40.000 categorie... o facciamo lo sforzo e passiamo alle intersezioni? ;-) --Alex brollo (disc.) 20:34, 17 gen 2009 (CET)
Primi esperimenti su dati estratti dal dump xml
Passetto passetto, aggiorno ed estendo il mio script python che estrae dati dal dump xml dell'intera wikisource (circa 50 Mby compressi, scaricabile qui http://download.wikimedia.org/ ). Al momento, crea un indice di tutte le pagine che mi permette di ripescarne il contenuto con "lettura casuale" del file. Esiste inoltre un dizionario che fornisce elenco e indici delle varie pagine sddivise per namespace. Ieri sera ho cominciato a usare tali indici per ripescare il contenuto delle varie pagine e cominciare a rovistarci dentro estraendo dati specifici, usando come campo di prova il namespace Autori. Il risultato sono i dati stampati caricati in modo abbastanza brutale su Wikisource:Autori: la lista degli autori e di alcuni campi del template Autore (titolo della pagina, cognome nome, data e giorno di nascita e anno di nascita, idem per la morte, professione e nazionalità).
Ma il witz è un altro. Avendo io aggiunto (per ora in Excel ma lo farà python) "un po'" di section, succede che se andate nella pagina Wikisource:Autori/Filtra vi trovate l'elenco degli autori il cui nome è (al momento) Francesco. Entrate in modifica e avrete una sorpresa; mettete un altro nome (per dire Luigi) e giocate con l'anteprima... sarete piacevolmente sorpresi. :-)
Chi mi ha seguito nei vari passi della "semantizzazione" dei dati Autore, può immaginare che a questo punto tutti i dati significativi di tutti gli autori siano dichiarati in un'unica pagina, e che la ricerca di questi dati possa essere automatizzata con un semplice template che potrebbe avere la forma {{DatoAutore|NomeAutore|cognome}} per ottenere il cognome di un autore, et similia; questo sarà il prossimo obiettivo. --Alex brollo (disc.) 09:47, 16 gen 2009 (CET)
Altro passetto
In un'altra pagina, Wikisource:Autori1, sono state aggiunge in ogni riga altre section, che consentono di filtrare la lista completa degli autori per tre parametri: nome, secolo nascita, nazionalità.
Ad esempio, il codice:
{{#section:Wikisource:Autori1|nazionalità.greco}}
restituisce:
- Platone Platone 427 347 filosofo greco
- Omero Omero autore greco
- Longo Sofista Longo Sofista romanziere greco
- Luciano di Samosata Luciano di Samosata 120 180 ca. scrittore greco
- Epitteto Epitteto 50 ca. 120 ca. filosofo greco
- Archestrato di Gela Archestrato di Gela scrittore greco
- Callimaco Callimaco 305 a.C. ca. 240 a.C. ca. poeta greco
- Teocrito Teocrito 324/321 a.C. 250 a.C. ca. poeta greco
- Eschilo Eschilo 525 a.C. 456 a.C. drammaturgo greco
- Sofocle Sofocle 496 a.C. 406 a.C. drammaturgo greco
- Demostene Demostene 384 a.C. 322 a.C. politico e oratore greco
- Euclide Euclide 325 a.C. 265 a.C. circa matematico greco
- Aezio di Amida Aezio di Amida scrittore greco
- Plutarco Plutarco 46 127 Scrittore e filosofo greco
Da notare inoltre che - al di là del formato grafico "spartano" che può essere migliorato con un pochino di applicazione: una volta scritto il codice python il programma non ha problemi a produrre un codice "complicato" come una tabella con le celle variamente colorate... - la pagina Wikisource:Autori1 è una forma embrionale della famosa "tabella autori", non utilizzabile per modifiche ma molto adeguata a un esame "a colpo d'occhio" ver vedere cosa manca (soprattutto se le caselle mancanti fossero colorate in modo da evidenziarle).
Navigando nel dump xml di source
Nel dump xml di source c'è... tutto, per la precisione: una delle versioni meno pesanti (solo 250Mby) ha tutti i contenuti correnti, senza le revisioni.
Tutto significa: il contenuto di tutte le pagine correnti, così come appaiono in modifica (ossia: il codice wiki che produce la loro versione visualizzata; quello che materialmente ha scritto il contributore). E c'è anche qualche interessante dato in più.
Ecco un breve campione:
<page> <title>I Malavoglia/Capitolo IV</title> <id>2553</id> <revision> <id>159529</id> <timestamp>2007-12-04T16:09:33Z</timestamp> <contributor> <username>IPorkBot</username> <id>367</id> </contributor> <minor /> <comment>Aggiornamento template intestazione</comment> <text xml:space="preserve">{{Intestazione letteratura |Nome e cognome dell'autore=Giovanni Verga |Titolo=I Malavoglia |Iniziale del titolo=I |Nome della pagina principale=I Malavoglia |Eventuale titolo della sezione o del capitolo=Capitolo Quarto |Anno di pubblicazione=1881 |Secolo di pubblicazione=XIX secolo |Il testo è una traduzione?=no |Lingua originale del testo= |Nome e cognome del traduttore= |Anno di traduzione= |Secolo di traduzione= |Abbiamo la versione cartacea a fronte?=no |URL della versione cartacea a fronte= }} {{capitolo |CapitoloPrecedente=Capitolo Terzo |NomePaginaCapitoloPrecedente=I Malavoglia/Capitolo III |CapitoloSuccessivo=Capitolo Quinto |NomePaginaCapitoloSuccessivo=I Malavoglia/Capitolo V }} Il peggio era che i lupini li avevano presi a credenza, e lo zio Crocifisso non si contentava di «buone parole e mele fradicie», per questo lo chiamavano Campana di legno, perché non ci sentiva di quell'orecchio, quando lo volevano pagare con delle chiacchiere, e' diceva che «alla credenza ci si pensa». Egli era....
Quindi so parecchie cosine... che il giorno 4.12.07 il IPorkBot , id 367, ha eseguito l'aggiornamento del template di intestazione sulla pagina I Malavoglia/Capitolo IV, id originale 2553, id della revisione corrente 159529, e che segue il contenuto della pagina al momento del dump (aggiornato frequentemente); e belli ordinati, elencati nel template intestazione, una serie di dati interessantissimi, ognuno dei quali può essere estratto a utilizzato...
I caratteri "buffi" come questo: Il testo è una traduzione sono l'effetto della codifica utf-8; basta saperlo per trovare il rimedio. ;-)
La pagina Wikisource:Autori è stata costruita leggendo dall'inizio alla fine il dump; indicizzando le <page>..</page> relative agli autori; estraendo e sistemando i dati dei template Autore. E vi assicuro: NON è stato difficile, basta sapere alcuni concetti primordiali di programmazione e disporre di qualche elementare nozione su un programma agile, scattante, semplice come python... per dire, python ci mette alcuni secondi (circa 10) per leggersi, riga per riga, i 250Mby del file, oltre tre milioni di righe, e dare una rapida occhiata al loro contenuto, una per una. Cosa farne poi... è questione di fantasia; ma qualsiasi dato ci sia, c'è il modo di utilizzarlo.--Alex brollo (disc.) 11:00, 17 gen 2009 (CET)
- Ottima scoperta. Probabilmente gli id sono semplicemente sequenziali, c'è un contatore che numera progressivamente ogni modifica... Questo ci impedisce di avere un ID per opera, perchè se io gli modifico la pagina principale avrà un'id diverso...
- Ad ogni modo, sembra interessante, molto. Bisognerebbe studiarsi meglio la struttura xml, per capire i dati che ci sono, che dovrebbe essere la descrizione dell'albero xml? Forse la mia è una curiosità inutile, ma non si sa mai. Quello che a noi serve, in questo dump, sono però dati che sono all'interno di template.... E questo purtroppo vanifica un po' i tuoi sforzi fatti con il progetto Auto, dato che lì i template sono "vuoti", e non fanno altro che transcludere.
- Ora la prendo un po' larga, ma cerchiamo di pensarci bene. IPork ha sempre avuto un approccio a metà via fra l' automazione e la manualità. Credo che lui avesse ragione nel pensare che sia sempre importante avere un wikicodice significativo, umanamente intelleggibile. Ovviamente non sempre, ma nelle nostre tre pagine principali, dirette all'utente assolutamente si. Pagine Autore, i testi, gli infotesti relativi sono i nostri tre gangli, le nostre fondamenta. A mio parere, dobbiamo puntare a rendere comode ma umanamente editabili queste pagine, mentre sul resto possiamo abbondare in template più complessi, e procedure più macchinose (sempre con giudizio però).
- Ora, le pagine dei testi con un template intestazione sono macchinose (soprattutto per la numerazione dei capitoli e i titoli delle sottopagine), human-readable. E anche nel dump questa cosa acquista valore. Per questo ho pensato una cosa assurda, ma forse utile, in fin dei conti: se il progetto Auto va in porto ed elabora procedure molto più comode, io e te (o addirittura Pietrdn sul toolserver) potremmo avere dei bot adibiti alla generazione dei template Auto per ogni pagina (opzionale, si può fare anche a mano), ma soprattutto alla sostituzione degli stessi template in template intestazione vecchio stile. :Forse sto dicendo un'immensa caxxata, ma in due passaggi forse è possibile generare i libri come li abbiamo sempre fatti. In questo modo salviamo capra e cavoli, avendo cose human-readable, anche se ridondanti, però comode da gestire.
- O forse è più semplcie ripartire col progetto Auto da capo, tenendo conto di questa impostazione: lavorando in modo simile al bottone OCR che richiama un bot, potremmo chiedere ai nostri utenti di generare un indice fatto bene e poi di cliccare un bottone (o di mettere una categoria) e farsi generare tutte le pagine dell'indice con i relativi template. All'utente poi l'onere dell'inserimento del testo, e magari la messa a punto dei template e così via. Il buon Qualc1 aveva un bot in Java che preso un testo in txt ben formattato generava automaticamente un libro da caricare via bot su source, ma io non sono mai riuscito ad aggiornargli i template (ci sono ancora quelli vecchi). Era uno strumento utile che però necessitava di un po' di rodaggio.
- Ad ogni modo, ho messo molta carne al fuoco, ed ho sfruttato questa discussione per chiarire insieme un punto importante. Aspetto feedback ;-) Aubrey McFato 11:35, 17 gen 2009 (CET)
- Grazie Aubrey dei commenti.
- Allora: riguardo al progetto Auto, non cambia assolutamente nulla: basta leggere il template Schema e i dati dell'Intestazione sono tutti lì, pronti a essere utilizzati. Io sto espandendo e semplificando la magnifica costruzione di IPork, senza perdere una virgola delle sue idee. Semplicemente, è inutile replicare (e dove correggere) per tante volte gli stessi dati Intestazione: una volta basta.
- Quanto alla generazione Auto di tutto il codice d un libro, anche proofread, lasciando all'utente il "solo" compito di occuparsi del testo (cosa che in realtà è il contributo più importante: gli altri sono abbellimenti, il core è il testo!), penso che sia una strada praticabile. Emergono delle possibilità inaspettate dalle peregrinazioni degli ultimi giorni (es: non avrei mai affrontato il dump xml che mi faceva un sacco di paura se non avessi preso coraggio sui djvu.xml...) per cui ho isogno di girovagare ancora un po' libero dall'assillo di obiettivi precisi... l'accoppiamento xml-python-database può generare delle cose veramente carine. E' comunque chiaro che avendo i dati necessari a riempire le caselle di input dei fogli excel che generano il codice, effettivamente l'automazione integrale via bot della creazione di:
- pagina indice
- pagine testuali
- sommari
è teoricamente realizzabile. Peccato che il bot di Qualc1 è in java... java mi sta proprio odioso. :-(--Alex brollo (disc.) 13:09, 17 gen 2009 (CET)
La pagina Wikisource:Autori1: cosa dimostra
La pagina nominata dimostra una cosa semplice ma importante, IMO: che una pagina può contenere più di 1500 diverse section (ce ne sono tre per autore) e la cosa viene digerita in un battibaleno dal software wiki. Questo dimostra che Jayvdb aveva ragione (come duubitarne...): le section sono poco "energivore" per i server, i template lo sono parecchio di più.
Quindi, in una pagina possono convivere beate migliaia di section e vivere in pace.
Quindi, il contenuto di ogni pagina può essere suddiviso in centinaia, o migliaia, di pezzettini richiamabili individualmente.
I giorni dell'anno sono 365... 730 section ci stanno. Tabella delle ricorrenze ottenuta con un'unica pagina! Elenco di un'opera del giorno diversa ogni giorno, magari con un piccolo incipit, ottenuta con una sola pagina! e avanti... :-) --Alex brollo (disc.) 20:24, 17 gen 2009 (CET)
La controprova
Per produrre questo elenco, non c'è altro codice nè altra pagina di questa qui e di Wikisource:Autori2.
Anniversari della morte
Ieri, 29 novembre:
- Luigi Capuana Luigi Capuana 28 maggio 1839 29 novembre 1915 scrittore, critico letterario e giornalista italiano
- Giacomo Puccini Giacomo Puccini 22 dicembre 1858 29 novembre 1924 compositore italiano
Oggi, 30 novembre:
- Evelina Cattermole Evelina Cattermole 26 ottobre 1849 30 novembre 1896 scrittrice e poetessa italiana
- Bonaventura Cavalieri Bonaventura Cavalieri 1598 30 novembre 1647 matematico italiano
Domani, 31 novembre:
- nessun autore presente su it.wikisource
Dopodomani, 32 novembre:
- nessun autore presente su it.wikisource
Fra tre giorni, 33 novembre:
- nessun autore presente su it.wikisource
A me piace... fare uno sforzo di fantasia e immaginate che il testo sia ben scritto e ben formattato. Visitate la pagina nei giorni prossimi: mostra sempre i quattro giorni successivi alla data corrente. Potrei chiedere anche gli anniversari di nascita ma non c'è nessuno... :-) --Alex brollo (disc.) 00:34, 18 gen 2009 (CET)
Buzhug: un database dentro un bot
Buzhug è una raccolta di routine per la creazione e l'uso di un database relazionale in python nativo. Questo significa che può essere inserito all'interno del codice di un bot, e che quindi il bot può costruire, aggiornare e interrogare il database senza interfacciarsi con alcuna applicazione esterna.
L'ipotesi a cui sto lavorando è quella di caricare su un database buzhug tutti i dati significativi estratti dal dump xml di wikisource, e di scrivere un "meta-linguaggio di query", ultrasemplificato, che consenta a qualsiasi utente wiki di interrogare, via Alebot, tale database, senza intervento umano. Il meccanismo di interrogazione è già attivabile, in forma embrionale: esiste uno script di Alebot, per ora inattivo, che consente all'utente generico di dialogare con il bot mediante un messaggio nella pagina di discussione del bot. Il sistema funzionerà solo quando il PC su corre Alebot, o un altro bot abilitato; in altri termini, quando l'utente che gestisce il bot ha il PC acceso e ha lanciato lo script di interrogazione periodica della pagina di discussione del bot. Il sistema potrebbe poi essere reso sempre attivo spostando il sistema sul toolserver.
Oltre che per l'interrogazione della base dati estratta dal dump wikisource, buzhug è molto promettente anche per altre funzioni a suo tempo sperimentate, quali la costruzione di dizionari delle opere e le statistiche sui lemmi. --Alex brollo (disc.) 09:19, 20 gen 2009 (CET)
- Geniale: alla fine intravedo la possibilità per chiunque di eseguire query sul dump senza rompere ai bottolatori! Forse questo è un buon nmotivo per "insegnare ai bot a capire il linguaggio naturale" come prospettavi. Geniale. εΔω sloggato. 14:01, 20 gen 2009 (CET)
- Fa sempre piacere riscoprire l'acqua calda, ed è questo che ho fatto con l'idea del bot che accetta richieste, e le esegue in automatico, mediante messaggi scritti dall'utente comune nella pagina di discussione del bot. Infatti, su en.source, il meccanismo -paro paro - è già stato implementato come "interactive bot"; in teoria in modo molto ardito (le funzione scatenabili dall'utente pasticcione possono essere devastanti anche se recuperabili - ma si vede che il rapporto rischi/benefici è favorevole. Vedi: en:Help:Bots. Forse è il fatto che la richiesta implica la conoscenza di RegEx che dà una certa sicurezza che gli utenti si moderino. ;-)
- Uno dei bot interattivi è di ThomasV; io proporrei di suggerire a qualcuno che se ne intende (non io, io sono e sarò per lungo tempo il classico apprendista stregone) di approfondire e di verificare se l'idea può essere importata qui, magari potando un po' le opzioni più distruttive. Se questa cosa esistesse.... tutto, ma proprio tutto, potrebbe cambiare, pur restando tutto uguale, per citare alla carlona l'autore de Il Gattopardo. ;-) --Alex brollo (disc.) 14:16, 20 gen 2009 (CET)
- Piccolo passo in avanti. Ho eseguito la "fusione fredda" fra il codice buzhug e il codice pywikipedia; in altri termini, in uno script sembrano convivere pacificamente sia lo script di accesso a wiki via Alebot, che gli script di accesso al database buzhug. Adesso devo cercare di organizzare l'orrendo guazzabuglio di script che fanno varie cose (OCR, parsing XML, creazione di vocabolari dei lemmi, gestione Autori "vecchia maniera", connessione fra Alebot e la sua pagina di discussione) e che sono disseminati qua e là, riunendoli e facendoli parlare fra di loro. La vedo durissima. Cercherò, d'ora in poi, di adottare il principio DRY che ho trovato descritto ieri per Django, un software wiki costruttore di siti: Don't Repeat Yourself. Finora l'ho abbondantemente trasgredito e me ne pento. :-( --Alex brollo (disc.) 08:36, 21 gen 2009 (CET)
Professione e nazionalità
Ho estratto e appena appena ripulito le parole che sono state utilizzate nel campo "Professione e nazionalità" del template Autori, come contributo all'individuazione di possibili categorie "puntiformi" da utilizzare per ricerche incrociate con il trucco incategory.
abate agente agronomo alchimista anatomista antico antifascista antropologo archeologo architetto arcivescovo aristocratica artista assessore astrologo astronomo ateniese attore austriaco avventuriero avvocato banchiere baritono bibliofilo bibliografo bibliotecario biologo brasiliano britannico canonico cantastorie cantore capitali capocomico cardinale carmelitano cattolica cattolico chirurgo cistercense clarissa clausura collezionista commediografo commissione compositore comune condottiero contessa critico danese d'antiquariato dantista d'armi d'arte dell'arte dell'Impero dicembre diplomatico direttore dittatore docente domenicana domenicano drammaturgo ebreo ecclesiastico economista editore enigmista entomologo equitazione erudito esecutore esploratore favolista federalista femminismo filologo filosofia filosofo fiorentino fisico fisiologo fondazione fotografo francese frate gastronomo generale genio geografo geologo gesuita giornalista giudice giullare giurista glottologo glottoteta governatrice grammatico greca grecista greco illuminista imperatore imprenditore in informatico ingegnere inglese inquisitore intellettuale internazionale inventore irlandese istitutrice italiana italiano latina latinista latino letterario letterato letteratura librettista lingua lingue linguista logico lombardo luglio maestra maestro magnogreco malacologo manuali marchese marzo matematica matematiche matematico mecenate medico mercante militare missionario mistica monaca monaco musicista naturalista notaio novelliere novembre olandese orafo oratore organista paleontologo papa partigiano patriota Patrizio pedagogista pioniera pittore poeta poetessa politico polito Pontificio presidente principessa privata professore programmatore prosatore provenzale re religiosa religioso ricercatrice romana romano romanziere sacerdote saggista santa santo scienziato scrittore scrittrice scultore segreto sentenze sociologia sofista sovrano sovrintendente spagnolo statista statunitense storia storico storiografo studioso suora svedese teatrale tedesco teologo traduttore umanista una universale universitaria universitario uomo varie Vescovo viaggiatore violinista zoologo
Non sono pochissime; me ne apettavo, a memoria, assai di meno. L'elenco comunque può essere abbondantemente ridotto. Incategory permetterebbe comunque, dopo che le categorie fosero state create e assegnate, di fare delle ricerche istantanee tipo "filosofi latini" o "librettisti e poeti francesi" o qualsiasi altra intersezione possibile con altre categorie di base (poeti del XVIII secolo; musicisti e poeti del XIX secolo; ecc)
- Aggiungo: una volta individuata e ripulita una serie di parole interessanti, senza modificarle, Alebot potrebbe essere in grado di caricare da sè sulle pagine Autore le categorie appropriate "leggendo" il campo "Professione e nazionalità" e verificando la presenza della parola chiave selezionata (con pochi errori). Il lavoro manuale consisterebbe pertanto principalmente nella individuazione delle parole che devono essere trasformate in categorie. --Alex brollo (disc.) 11:05, 20 gen 2009 (CET)
- Sono a casa malato ma voglio dare un segno di vita. Sto cercando di riflettere sul da farsi riguardo all "keywords-categorie" sulle professioni. Un'ideuzza, non so quanto fattibile, ma sicuramente estrema, sarebbe quella di far pescare ad AleBot (o far importare dal BimBot) i dati contenuti nei template Bio su Pedia. Dato che solitamente abbiamo sempre tentato di sincronizzare i progetti (prendendo i dati da pedia), poterbbe essere un'idea, che fra l'altro garantirebbe omogeneità. Se l'autore su Pedia non c'è lo si crea. Per il resto, l'unica cosa che forse non mi convince è avere tutte le keywords al maschile, non vorrei che per un esigenza catalogatoria si perpetrassero delle piccole ma comuni "discriminazioni"... Scrittrici mi piace più di scrittori, per le donne. Ad ogni modo, la questione delle categorie/keywords andrebbe affrontata seriamente... ricordo che questa è la differenza principale che ci separa anni luce dall vere biblioteche (almeno dal loro punto di vista). Mi piacerebbe (e se riesco lo faccio) discuterne con un bibliotecario competente. Sarebbe bello avere una sorta di classificazione a faccette, e potremmo eliminare la bella ma restrittiva gerarchia ad albero di IPork, che prevede categorie di tipo divise anche per SAL.... A questo si potrebbe ovviare con le intersezioni. Ma la struttura da costruire non è banale, a farla bene, e bisogna vedere fin dove MediaWiki ci può seguire. In questi mesi spero di portare apporti utili alla discussione. Aubrey McFato 11:10, 21 gen 2009 (CET)
- Buzhug comincia a entrarmi nella testa (non è facile, già i database in sè sono un rompicapo, qui tutto è nuovo nella sintassi...). I database che costruisce sono molto elastici, è agevole modificare la struttura. Lo sto stressando con una tabella di oltre 60.000 record di tipo anagrafico, risponde bene e in fretta anche sotto un "Portable python" (una versione di python che non richiede installazione e che volendo gira montata solo su drive esterno USB).
- Implementati per bene i dati base ricavabili da source (template autori, intestazione, infotesto) niente impedisce di andare avanti pescando informazioni altrove. Al momento non ho mai fatto girare Alebot su altri progetti, nemmeno in lettura, ma penso che non sia impossibile imparare.
- Pensare in categorie "granulari" non è facile; ad esempio, la categoria "XIX secolo" dovrebbe comprendere qualsiasi "oggetto" a cui si possa attribuire il concetto "XIX secolo", e quindi sia gli autori, che le opere... chiaro che "scrittori" e "scrittrici" viola un pochino il principio "una categoria-un concetto", avremmo comunque bisogno di un'altra categoria "persone" da usare quando si vuole estrarre maschi e femmine insieme; e... cosa dire di "glottoteta"? E' la collega del glottoteto? :-) --Alex brollo (disc.) 14:38, 21 gen 2009 (CET)
- Sono a casa malato ma voglio dare un segno di vita. Sto cercando di riflettere sul da farsi riguardo all "keywords-categorie" sulle professioni. Un'ideuzza, non so quanto fattibile, ma sicuramente estrema, sarebbe quella di far pescare ad AleBot (o far importare dal BimBot) i dati contenuti nei template Bio su Pedia. Dato che solitamente abbiamo sempre tentato di sincronizzare i progetti (prendendo i dati da pedia), poterbbe essere un'idea, che fra l'altro garantirebbe omogeneità. Se l'autore su Pedia non c'è lo si crea. Per il resto, l'unica cosa che forse non mi convince è avere tutte le keywords al maschile, non vorrei che per un esigenza catalogatoria si perpetrassero delle piccole ma comuni "discriminazioni"... Scrittrici mi piace più di scrittori, per le donne. Ad ogni modo, la questione delle categorie/keywords andrebbe affrontata seriamente... ricordo che questa è la differenza principale che ci separa anni luce dall vere biblioteche (almeno dal loro punto di vista). Mi piacerebbe (e se riesco lo faccio) discuterne con un bibliotecario competente. Sarebbe bello avere una sorta di classificazione a faccette, e potremmo eliminare la bella ma restrittiva gerarchia ad albero di IPork, che prevede categorie di tipo divise anche per SAL.... A questo si potrebbe ovviare con le intersezioni. Ma la struttura da costruire non è banale, a farla bene, e bisogna vedere fin dove MediaWiki ci può seguire. In questi mesi spero di portare apporti utili alla discussione. Aubrey McFato 11:10, 21 gen 2009 (CET)
Versione Ricorrenze con la transclusione selettiva
Eccola qui:
Ricorrenze
Oggi 30 novembre
Domani Wikisource:Autori/Ricorrenze
Nessun template, solo alcune variabili di data e molte transclusioni; tutto il codice è contenuto in questa pagina e in una sola altra pagina. Veramente la transclusione selettiva crea "UDF" di wikisource (variabili definite dall'utente) oggi, senza aspettare domani!--Alex brollo (disc.) 00:29, 24 gen 2009 (CET)
- Mitico! Ora bisognerebbe soltanto inserire sto popo' di codice nel template della pagina principale apposito, giusto? E poi concentrarsi sul sincronizzare le ricorrenze. Aubrey McFato 12:23, 24 gen 2009 (CET)
- Mi correggo, un nuovo template è servito per risolvere il problema dei 29 febbraio. Quindi, UN template e UNA pagina dati. Il nuovo template consente di semplificare moltissimo il codice perchè accetta uno dei tre parametri: ieri, oggi, domani...
Esempio: oggi siamo il Utente:Alex brollo/Giorno e domani Utente:Alex brollo/Giorno cadono le seguenti ricorrenze:
- Nonostante l'entusiasmo, io lascerei le cose come stanno. Userei la nuova pagina ricorrenze per eventuali "chiamate al volo", ma non toccherei i meccanismi consolidati... comincio a intuire la meraviglia dell'attuale organizzazione e non la sfiorerei per niente. Integrarla sì, sostituirla no. Fra l'altro, ieri sera ho allineato (a dire il vero, non io, ma Alebot) le ricorrenze aggiungendo le 120 ricorrenze mancanti, non sul modello nuovo, ma su quello "vecchio", e Alebot sa farlo su richiesta interattiva (un autore alla volta). Mi è costato sangue, è molto più facile far scrivere a un bot una pagina nuova piuttosto che verificare, integrare e correggere una pagina esistente, ma alla fine mi sembra di avercela fatta. --Alex brollo (disc.) 15:13, 26 gen 2009 (CET)
De incipit
Sta emergendo l'opportunità di tenere pronto, per ogni opera, un Incipit, che io identificherei con una section "incipit" in una delle sezioni iniziali di ogni testo, a cura, se possibile, del contribuente principale. Ma come ricordarsi in che sezione è, e come recuperarne il contenuto a colpo sicuro e in modo standard? Io ipotizzo, a questo e ad altri scopi, di usare la pagina Template:TitoloOpera, che potrebbe contenere il riferimento all'Incipit e un codice tale da restituirlo ovunque (all'interno di it.source ovvio) con questo intuitivo e sempicissimo codice: {{TitoloOpera|incipit}}. Cosa ne dite? --Alex brollo (disc.) 11:51, 10 feb 2009 (CET)
Lavori in corso: automazione opere
Per chi si appassiona a queste cose, segnalo Template:La regola di san Benedetto dove sto accumulando tutti i dati necessari perchè un bot crei dal nulla tutte le pagine della versione testuale dell'opera, e "metta le mani" anche su alcuni aspetti noiosi della versione con testo a fronte (es. la creazione del sommario). I due template Intestazione e Infotesto sono di uso intuitivo; merita più attenzione il sommario, dove ogni riga contiene i dati necessari a costruire sia la barra di navigazione, che la pagina vera e propria. Ogni riga ha tre campi divisi da un carattere |, il primo è il titolo del capitolo come apparirà nell'intestazione del capitolo, il secondo è il titolo abbreviato come comparità nnella barra di navigazione, il terzo è il titolo della pagina source che verrà creata dal bot. --Alex brollo (disc.) 11:29, 12 feb 2009 (CET)
Se non sbaglio, per costruire tutta un'opera testuale non serve altro: poi vanno aggiunti solo i riferimenti alle pagine del namespace Pagina. --Alex brollo (disc.) 11:29, 12 feb 2009 (CET)
- Alebot a questo punto sulla base dei dati contenuti in Template:La regola di san Benedetto può costruire i template base dell'automazione, e l'ha fatto: Template:La regola di san Benedetto/Indice (il contenitore dei dati su capitoli e barre di navigazione, identificati da section),Template:La regola di san Benedetto/Schema (il template che genera le intestazioni dei capitoli), Template:La regola di san Benedetto/Navbar (il template che genera le barre di navigazione). Manca il template Auto (che genera l'insieme di un'intestazione, di un primo template di navigazione, di uno spazio per il testo e di una seconda barra di navigazione), ma io preferirei, anche per una nota questione di apostrofi a cui Edo tiene molto, NON spingere l'automazione fino al livello Auto e usare una mezza via, in cui appaiono in chiaro le tre chiamate a intestazione, prima barra, spazio testo, seconda barra. Per Alebot generare una pagina un pochino più complicata, o una pagina più semplice ed elegante, è assolutamente indifferente. --Alex brollo (disc.) 18:34, 12 feb 2009 (CET)
- Scrivo a mano il codice delle pagine La regola di san Benedetto e La regola di san Benedetto/Prologo per permettervi di vedere in pratica cosa intendo per "mezza via" dell'automazione. --Alex brollo (disc.) 10:45, 13 feb 2009 (CET)
- Alebot a questo punto sulla base dei dati contenuti in Template:La regola di san Benedetto può costruire i template base dell'automazione, e l'ha fatto: Template:La regola di san Benedetto/Indice (il contenitore dei dati su capitoli e barre di navigazione, identificati da section),Template:La regola di san Benedetto/Schema (il template che genera le intestazioni dei capitoli), Template:La regola di san Benedetto/Navbar (il template che genera le barre di navigazione). Manca il template Auto (che genera l'insieme di un'intestazione, di un primo template di navigazione, di uno spazio per il testo e di una seconda barra di navigazione), ma io preferirei, anche per una nota questione di apostrofi a cui Edo tiene molto, NON spingere l'automazione fino al livello Auto e usare una mezza via, in cui appaiono in chiaro le tre chiamate a intestazione, prima barra, spazio testo, seconda barra. Per Alebot generare una pagina un pochino più complicata, o una pagina più semplice ed elegante, è assolutamente indifferente. --Alex brollo (disc.) 18:34, 12 feb 2009 (CET)
Conversione apostrofi tipografici->dattilografici
Ho aggiunto due funzioni al bot interattivo:
* Richiesta: verifica apostrofi pagina [[TitoloPagina]] --~~~~ * Richiesta: verifica apostrofi opera completa [[TitoloPagina]] --~~~~
La prima funzione esegue la ricerca e la conversione di eventuali apostrofi dattilografici in una pagina, la seconda accetta il nome della pagina principale di un'opera non proofread, o della pagina Indice: di un'opera proofread, e ne verifica in successione tutte le pagine.
Un fastidiosissimo bug logico è stato scovato e corretto per merito di Xavier.
La routine è meno banale di quanto si possa immaginare, non è affatto un semplice "cerca e sostituisci", perchè oltre agli apostrofi dattilografici che fanno parte del markup wiki, vanno ignorati e preservati tutti gli apostrofi dattilografici che sono contenuti in template, in link di vario tipo, in link esterni, pena la devastazione dei collegamenti e della formattazione.
In questo momento la routine sta passando pagina per pagina Indice:Il cavallarizzo, sto tenendo le dita incrociate. --Alex brollo (disc.) 00:07, 16 feb 2009 (CET)
Piccole rivoluzioni possibili
A seguito di una discussione nel bar generale, ho avuto qualche idea che qui riassumo e riprendo per approfondimenti tecnici (mi conoscete abbastanza per cominciare a preoccuparvi ;-) ).
Modifiche a Template:AutoreCitato
Corre su Template:AutoreCitato/Sandbox una versione modificata del template, che determina un comportamento diverso del template a seconda che esista, o meno, la pagina Autore: corrispondente. Nel caso che la pagina Autore: esista, punta su tale pagina; nel caso non esista (es. pagina ancora da scrivere oppure scheda autore fuori del namespace Autore:, soluzione ipotizzata per gli autori citati senza opere su it.source), punto sulla corrispondente pagina Wikisource:Autore/ .
Modifiche a Template:Autore
Corre su Template:Autore/Sandbox una versione modificata del template, che determina un comportamento diverso del template a seconda che il template stia su una pagina Autore: oppure su un altro namespace. Nel primo caso, tutto funziona come prima; nel secondo caso, NON vengono generate le usuali categorie e quindi la pagina resta invisibile a BimBot e non verrà elencata nelle liste generate dai bot. Verrà inceve generata una nuova categoria Categoria:Autori senza opere in cui la pagina contenente il template sarà elencata.
Ipotesi di ulteriore modifica del template AutoreCitato
Grazie al ritrovamento di una funzione parser non documentata (#titleparts) diventa possibile accedere al nome dell'autore dell'opera da tutte le pagine e sottopagine di un'opera, indifferentemente dal numero di sottolivello della pagina. Questo significa che una nuova versione di AutoreCitato potrà generare altre due categorie, ipoteticamente chiamate Categoria:Autore citato da autore dell'opera e Categoria:Autore citato nell'opera ..., complementari alle attuali categorie generate (la prospettiva sembrerebbe esere la realizazione di un vecchio sogno di Aubrey).
Chiedo a qualche admin coraggioso di prendere visione delle nuove versioni dei templates e - fatte le valutazioni opportune - copiare eventualmente il nuovo codice nella pagina base dei templates. Non dovrebbe succedere, in apparenza, niente, nè nessuna chiamata ai template, presente su source, dovrebbe essere modificata.--Alex brollo (disc.) 09:43, 28 feb 2009 (CET)
Due settimane dopo
Vi farà certamente piacere, e vi darà un'intima soddisfazione, sapere che stento a capire quello che io stesso ho scritto. :-( --Alex brollo (disc.) 00:38, 11 mar 2009 (CET)
Alternativa
Sono stato coinvolto in una mastodontica e boldissima opera - lo Zibaldone. Ricchissima di "link rossi" che puntano a autori impossibili. Non ho visto un grande entusiasmo per la mia idea di far puntare AutoreCitato "da un'altra parte", ma ho scovato un'alternativa... ipotizziamo che esista una pagina Wikisource:Autori senza opere, e che al suo interno vi sia semplicemente un elenco di autori, ciascuno però puntato da un'ancora che prenda il nome dell'autore. Ogni voce dell'elenco potrebbe riportare informazioni sommarie di ipertesto (dati anagrafici, link interprogetto e/o link esterni): una righetta. AutoreCitato potrebbe essere istruito a puntare direttamente all'ancora... non solo: passando con il mouse sopra un link AutoreCitato, comparirebbero due testi diversi assai autoesplicativi: se l'autore c'è, comparirebbe Autore:Pinco Pallino; se non c'è, comparirebbe Wikisource:Autori senza opere#Pinco_Pallino. Se poi l'utente ancora segue il link sperando di trovare opere è un allocco. Detto con simpatia ovvio... ;-)--Alex brollo (disc.) 18:06, 17 mar 2009 (CET)
- Uau, siamo sincronizzati, io stavo pensando qualcosa di simile ma complementare da inserire su Wikipedia, una modifica del template Interporgetto che dice Questo autore è stato citato in quest'opera... Si potrebbe forse anche istruire un bottolo a verificare i collegametne interprogetti.. ma non corriamo. Appena ho tempo rileggo meglio e ti rispondo. --Aubrey McFato 19:47, 17 mar 2009 (CET)
- test con wikilink liscio: Aetio Agostin di Sessa OK
- testo con tl|AutoreCitato/Sandbox : {{AutoreCitato/Sandbox|Aetio}} {{AutoreCitato/Sandbox|Agostin di Sessa}} {{AutoreCitato/Sandbox|Claudio Corte}}OK!!! :-)
- Funziona... ma soprattutto NON serve sostituire gli spazi con un underscore! Questo mi piace molto, poi vi dirò perchè :-) --Alex brollo (disc.) 12:02, 18 mar 2009 (CET)
- Uau, mi piace molto. Sarebbe bello avere, nella pagine Autori senza opere un rimando alla categoria (o alle categorie, se riusciamo ad implementare la faccenda delle citazioni..) di "Testi in cui è citato ..." La possiamo scrivere sotto il nome dell'autore. --Aubrey McFato 14:03, 18 mar 2009 (CET)
- Se l'idea sarà accettata, bello sarebbe costruire un tl|AutoreSenzaOpere parametrizzato. Gli autori che ho sbattuto là sono quelli che avevo "collezionato" nel libro di Corte, dopo essermi bloccato nella creazione di nuovi autori (beata ingenuità). Un template per generare una sola righetta o due, ma "scritte bene". E con alcuni dati "acchiappabili" da un bot lettore. --Alex brollo (disc.) 16:26, 18 mar 2009 (CET)
- Per me qualsiasi informazione è meglio di nessuna informazione, quindi OK, avete il mio appoggio... :D--Xavier121 16:32, 18 mar 2009 (CET)
- Se l'idea sarà accettata, bello sarebbe costruire un tl|AutoreSenzaOpere parametrizzato. Gli autori che ho sbattuto là sono quelli che avevo "collezionato" nel libro di Corte, dopo essermi bloccato nella creazione di nuovi autori (beata ingenuità). Un template per generare una sola righetta o due, ma "scritte bene". E con alcuni dati "acchiappabili" da un bot lettore. --Alex brollo (disc.) 16:26, 18 mar 2009 (CET)
Templates, mondo misterioso
Ho scoperto varie caratteristiche non documentate dei templates, altamente suggestive.
- fra i parametri si possono mescolare parametri chiamati per posizione e parametri chiamati per nome.
- il parametro posizionale può essere usato anche come nome.
- esiste quindi un possibile conflitto fra parametri (v. punto due): un parametro può essere chiamato sia per posizione, che per nome. Prevale la chiamata per nome.
Esiste un template di prova, assai banale, Utente:Alex brollo/ZbLink1 (il nome è riciclato da un progetto abortito, abbiate pazienza).
Il codice è: {{{1|}}} - {{{2|}}} - {{{3|}}} - {{{4|}}} - {{{5|}}} ossia: stampa cinque possibili parametri nell'ordine 1 -> 5, divisi da spazio-trattino-spazio.
- {{Utente:Alex brollo/ZbLink1|alex|brollo}} (chiamata posizionale pura) produce: Utente:Alex brollo/ZbLink1
- {{Utente:Alex brollo/ZbLink1|2=brollo|1=alex}} (chiamata nominale pura) produce: Utente:Alex brollo/ZbLink1
- {{Utente:Alex brollo/ZbLink1|alex|4=brollo}} (chiamata mista nominale e posizionale) produce: Utente:Alex brollo/ZbLink1
- {{Utente:Alex brollo/ZbLink1|4=brollo|alex}} (chiamata mista nominale e posizionale) produce: Utente:Alex brollo/ZbLink1
- {{Utente:Alex brollo/Zblink1|alex|brollo|1=Alessandro}} (chiamata mista nominale e posizionale con conflitto) produce: Utente:Alex brollo/ZbLink1
Curioso no? --Alex brollo (disc.) 11:48, 23 mar 2009 (CET)
- Decisamente, anche se ciò che mi perplime è non avere idea di come usare tutte queste informazioni ;-)
- Visto che sei in modalità esauriamo tutte le relazioni e conseguenze di un sistema, potersti provare a vedere se ci sono limiti nell'utilizzo delle categorie: capire cosa è lecito e cosa no, cosa succede con i redirect, se si possono fare transclusioni, qual'è il grado di poligerarchie ammesso (possiamo sicuramente dare più padri ad una categorie, ma fino a che punto possiamo far diventare la gerarchia una ragnatela?) :-P --Aubrey McFato 13:30, 23 mar 2009 (CET)
- il problema che avevo era relativo a ZbLink. "Se un template visualizza ciò che proviene dall'elaborazione di parametri che generano "cose altre", come faccio a forzarlo a visualizzare, talora, qualcos'altro"? Adesso lo so. ;-)
- guarda un po'... giusto prima stavo facendo esperimenti di transclusione di categorie. Campo affascinante... Penso che vi siano poche limitazioni "intrinseche" nell'uso delle categorie, il che spiega perchè ci sono tante "linee guida di buona categorizzazione". L'idea catwords le viola tutte, queste linee guida, ;-) alla ricerca di caratteri emergenti dall'inesplorato perchè fortemente sconsigliato. I limiti che conosco sono due, correlati fra di loro:
- niente categorie autoreferenziali (categoria che appartiene a se stessa)
- niente cicli (progenitore sottocategoria di discendente).
- Al fine catontologico, niente che ci preoccupi. :-)
- Proviamo cosa succede a transcludere:
Questo testo è incluso in Categoria:Template usati dal Progetto Zibaldone
Come atteso, la transclusione genera due cose:
- eventuale testo della categoria
- categorizzazione della pagina dove avviene la transclusione con la categoria/le categorie a cui la categoria transclusa appartiene.
Ampia materia di profonde riflessioni... --Alex brollo (disc.) 14:46, 23 mar 2009 (CET)
AutoreCitato e niubbi
La cosa più odiosa di AutoreCitato per un niubbo o un ignorantone letterario AIA (-> As I Am) è ricercare il nome completo di autori anche famosi (es Virgilio). Ci sono due modi di risolvere il problema: i redirect (soluzione efficace ma "sporca"; si inquina seriamente il namespace) oppure... Sto pensando all'oppure: truccare AutoreCitato in modo che automagicamente e senza redirect {{AutoreCitato|Virgilio}} si comporti come se fosse stato scritto {{AutoreCitato|Publio Virgilio Marone|Virgilio}}. Che dite, ci provo? --Alex brollo (disc.) 10:09, 24 mar 2009 (CET) PS: va da sé che questo sarebbe anche un buon passo nella direzione della parziale automazione dell'applicazione di AutoreCitato come da vecchia idea di Edo.
- Ti dico solo che io ti amo. :-D Vai e distruggi! --Aubrey McFato 13:06, 24 mar 2009 (CET)
- Ho subito creato tl|TestoCitato/Sandbox1/Dati , per creare il corrispettivo per il tl|TC ;-). Quindi come funziona? Se io so il nome lo metto/ se il nome non è nella lista dei Dati, è tutto come prima? Se questa modifica fosse solo additiva, sarebbe perfetto, davvero. --Aubrey McFato 18:40, 24 mar 2009 (CET)
- Questo sarebbe un toccasana per usare nel template TestoCitato nomi "umani" per i nostri testi dai nomi impossibili: ricordate Canto V dell'Inferno contro Divina Commedia/Inferno/Canto V? - εΔω 19:07, 24 mar 2009 (CET)
- Ho subito creato tl|TestoCitato/Sandbox1/Dati , per creare il corrispettivo per il tl|TC ;-). Quindi come funziona? Se io so il nome lo metto/ se il nome non è nella lista dei Dati, è tutto come prima? Se questa modifica fosse solo additiva, sarebbe perfetto, davvero. --Aubrey McFato 18:40, 24 mar 2009 (CET)
- @ Aubrey: questi automatismi sono come i bot, vanno tenuti d'occhio. Quindi, il codice nome breve -> nome completo (sia esso realtico ad autori o a testi) secondo me va gestito a mano. Il codice (nella sottopagna Dati) è semplicissimo: <section begin=nome_breve />nome completo<section end=nome_breve />. Mi pare che in nome_breve non ci debbano essere spazi, ossia: dev'essere composto da una sola parola. Verificherò, ma ho avuto un problemino con "Plinio il giovane". Se questa limitazione esiste, per tl|TestoCitato il problema non è affatto risolto.
- @ Edo: certo, niente impedisce che esistano più "nomi brevi", anche curiosi (mi viene in mente "Vergilio", oppure le sigle delle citazioni bibliografie rinascimentali) che puntano sullo stesso "nome completo". Il problema è l'inverso: stesso nome breve che potrebbe indicare due diversi nomi completi.... es. Plinio.
- Quello che un semplice script python può fare, meglio sul dump xml, è estrarre e contare tutti i tl|AutoreCitato utilizzati ovunque; osservare le evenienze de AutoreCitato con due parametri; prepararsi una tabellina primo parametro-secondo parametro (ossia nome completo-nome abbreviato). Ma poi, lo spulciamento delle ambiguità e la selezione dei casi "utili" per frequenza e univocità andrà fatta a mano (anzi, "a cervello" ;-) ) --Alex brollo (disc.) 19:40, 24 mar 2009 (CET)
- Buone notizie. Tutto funziona a meraviglia se si ha l'avvertenza di mettere il nome della section, contenente spazi, all'interno di virgolette!
- Quindi: non scrivere <section begin=Plinio il giovane />, ma scrivere <section begin="Plinio il giovane" />. Per Aubrey: il "template che non c'è", Template:TestoCitato/Sandbox1, non poteva funzionare... ho cominciato a scriverlo, non è affatto facile perchè prevede tre, e non solo due, parametri, quindi, è completamente diverso da AutoreCitato! --Alex brollo (disc.) 20:15, 24 mar 2009 (CET)
- Mi spiace... l'esportazione del trucco AutoreCitato in TestoCitato con il terzo parametro crea delle difficoltà notevoli, che in questo momento mi sembrano insormontabili; da una singola chiave devo ottenere due distinti risultati, corrispondenti a "titolo" (parametro 1) e a "sottopagina" (parametro 3) e lo potrei anche fare, con una buona spremitura di sinapsi, ma la compilazione di Dati diventerebbe molto complessa e poco intuitiva. Ne vale la pena? --Alex brollo (disc.) 20:28, 24 mar 2009 (CET)
- Potresti spiegarmi perchè non funziona? Non dovrebbe categorizzare all'interno della sottopagina (stai provando a scrivere il testo originale, o direttamente la sottopagina?) Se potesse funzionare solo per pochi testi, mi andrebbe già bene, altrimenti dobbiamo rispolvere con i redirect, perchè la questione dei TC è più spinosa di quella degli AC. Aubrey McFato 21:48, 24 mar 2009 (CET)
- Mi spiace... l'esportazione del trucco AutoreCitato in TestoCitato con il terzo parametro crea delle difficoltà notevoli, che in questo momento mi sembrano insormontabili; da una singola chiave devo ottenere due distinti risultati, corrispondenti a "titolo" (parametro 1) e a "sottopagina" (parametro 3) e lo potrei anche fare, con una buona spremitura di sinapsi, ma la compilazione di Dati diventerebbe molto complessa e poco intuitiva. Ne vale la pena? --Alex brollo (disc.) 20:28, 24 mar 2009 (CET)
- Ho scritto una versione semplificata di TestoCitato "truccato" in Template:TestoCitato/Sandbox1, funziona solo nei casi in cui non è previsto il link alla sottopagina (il famoso "terzo parametro").
- Però... adesso che ci penso ho appena scoperto la questione della miscidanza fra parametri posizionali e nominali... spetta due minutini..--Alex brollo (disc.) 22:12, 24 mar 2009 (CET)
Creato tl|Ac
Ho spostato il codice da Template:AutoreCitato/Sandbox1 a Template:Ac, etichettato ancora come "Template di prova". tl|Ac può essere utilizzato sia con la vecchia sintassi di AutoreCitato, sia con la nuova sintassi, compatibile con la vecchia, che in caso di parametro singolo "dà un'occhiata" nella propria sottopagina Dati per vedere se l'autore è menzionato.
Siccome il nome Ac, per quanto sigla "esoterica", richiama però il testo dell'icona penso che possa essere accettabile. Tuttavia la nuova funzione suggerisce di modificare leggermente il codice del pulsante in modo che di default preveda un solo parametro e punti alla nuova versione; l'attuale versione che gira nel mio monobooks.js è:
// AUTORECITATO VERSIONE MARZO 2009 if (mwCustomEditButtons) { mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/commons/6/6d/Button_AC.png", "speedTip": "Ac", "tagOpen": '{{Ac|', "tagClose": '}}', "sampleText": "Nome autore"}; };
TestoCitato, e siamo niubbi tutti...
Allora, la situazione di partenza è questa:
{{TestoCitato| Titolo del testo| Eventuale titolo diverso usato nella pagina| Eventuale collegamento ad una sottopagina}}
Ammetto: l'avevo schivato più possibile. In particolare era assai oscuro quell'Eventuale collegamente ad una sottopagina.
Quindi, per linkare il Canto I dell'Inferno di Dante, bisognava scrivere:
{{TestoCitato|Divina Commedia|Canto I dell'Inferno| Divina Commedia/Inferno/Canto I}}
.
Ho testato due novità.
- un meccanismo simile a new AutoreCitato, per cui una dizione "abbreviata" di un titolo viene collegata automatcamente al titolo originale (purchè la coppia sia elencata in una pagina, ovvio...);
- la possibilità di utilizzare in parametro nominale, sottopagina, in cui indicare solo la parte di titolo sufficiente a raggiungere una determinata sezione del titolo.
- comunque un titolo complesso sia suddiviso in pagina principale/sottopagina, la categoria resta comunque agganciata al titolo principale dell'opera citata.
Un risultato equivalente a quello citato sopra si ottiene, con il template di prova, con questi codici (fermo restando la presenza di "qualcosa" in una pagina dati, ovvio...)
{{TestoCitato/Sandbox1|Canto I dell'Inferno}}
oppure
{{TestoCitato/Sandbox1|Inferno|sottopagina=Canto I}}
(se non si deve visualizzare la destinazione precisa della citazione). Fra l'altro: nulla impedisce di attaccare anche il link a un'ancora, al parametro sottopagina .... why not? Quindi, adesso TestoCitato può puntare a un testo ancorato. Non mi pare male... ma verificate che per ora è solo deduzione logica...--Alex brollo (disc.) 00:30, 25 mar 2009 (CET)
Con tristezza elimino dal messaggio precedente tutte le chiamate ai nuovi template... generano categorie che Bimbot espande nelle liste con risultati disastrosi. Peccato. I test li faremo io e Aubrey su alcune pagine de Indice:Zibaldone di pensieri I.djvu, dove non faranno danno essendo applicate a casi reali --Alex brollo (disc.) 21:42, 27 mar 2009 (CET)
Nuovo fronte: tl|&
Ennesima picchiatellata. :-)
Ho scoperto come passare a un template un numero variabile di elementi distinti all'interno di un solo parametro. Il codice del template dev'essere modificato, ovviamente, ma non occorre modificare i codici di chiamata al template. Esempio: nel terribile tl|Qualità potrei infilare due o tre argomenti, nel template Intestazione potrei infilare due o tre autori.... e così via. Due o tre, ma anche cinque o sei. Ora, questa cosa apre delle prospettive piuttosto profonde... è una vera, piccola rivoluzione, analoga alla scoperta delle section e del loro uso come "variabili" e come "indici". Non è facile afferrarne subito la portata, ma io "sento" che è notevole. --Alex brollo (disc.) 22:16, 27 mar 2009 (CET)
Suggestioni da Zibaldone
Da quella "palestra del pensiero" che è Zibaldone (grazie Xavier di avermi coinvolto!), una serie di idee ancora abbastanza sconnesse, ma che spero di ricucire prima o poi discutendone innanzitutto "fra picchiatelli". Uno dei problemi "filosofici" che volevo proporvi è: aumentare, di molto, la tecnica della sostituzione dei templates, mediante subst? I vantaggi: codice più leggibile, diminuzione del carico dei server, maggiore facilità nelle ricerche (vi sono tools che ricercano solo nel codice wiki qual'è scritto esplicitamente, e non nel testo quale "appare" sul browser dopo espansione dei templates). Gli svantaggi: si perde la possibilità di modificare il contenuto di una serie di pagine agendo in un punto solo; in qualche caso, generazione di un codice molto complesso. Il bilancio fra vantaggi e svantaggi è determinato:
- dalla probabililità che il testo generato dal template sia oggetto di modifiche;
- dalla complessità del codice eventualmente generato, rapportata alla complessità della comprensione del template tal quale.
Vi illustro un caso tipico in cui penso che la subst sia una buona idea: il nuovo template Ac (evoluzione del tl|AutoreCitato). Il nuovo template viene supportato da una sua sottopagina, in cui sono elencate le corrispondenze fra "nome autore breve" (Virgilio, Dante) e "nome esteso" (Publio Virgilio Marone, Dante Alighieri). Questo significa che basta scrivere {{Ac|Virgilio}} oppure {{Ac|Dante}} perchè dinamicamente il template punti alla pagina autore giusta, senza che sia necessaria una pagina di redirect (meno redirect ci sono, meglio è). La probabilità che il nome "ufficiale" di un autore venga cambiata è molto bassa. Quindi: un caso tipico in cui sarebbe opportuno che il template si "autotrasformasse", in parte, espandendosi da {{Ac|Virgilio}} a {{Ac|Publio Virgilio Marone|Virgilio}} o anche a {{AutoreCitato|Publio Virgilio Marone|Virgilio}}.
Vi comunico inoltre che la procedura di conversione Athenian->Unicode per i caratteri greci comunemente presenti nei testi Windows ha fatto un altro passo in avanti, permettendo la conversione dei due caratteri Athenian accento+maiuscola non accentata nell'unico carattere maiuscolo accentato di Unicode. Chiunque trovi "errori sistematici" di conversione in Zibaldone (che stanotte il bot si è ripassato completamente) me li segnali. --Alex brollo (disc.) 10:37, 2 apr 2009 (CEST)
Condividendo una certa soddisfazione....
Ho il piacere di informarvi che ho appena fatto girare il primo script utile (utile davvero!!!) nel lungo viaggio per dominare la trasformazione da pdf ad immagine "normale", diciamo jpeg, ed ottimizzarla prima di montarla in un file djvu.
"Prendi la pagina 4 del file nomefile.pdf, eseguine l'estrazione in un file jpg alla risoluzione di 300 dpi , eseguine poi il cropping (ritaglio dei margini) automatico, e salva il risultato nel file immagine4.jpg". Tutto questo detto usando python che chiama nconvert, e con un' unica istruzione. :-)
Qualità del risultato: eccellente. Tempo per elaborare una immagine: un paio di secondi (ossia: una ventina di muniti per "digerire" un malloppo di 500 pagine). In altri termini: Any2Djvu non mi serve più. :-) :-)
Prossimo obiettivo: i malefici pdf Opal, in cui una pagina pdf va spezzata in due pagine distinte. Adesso la cosa non mi pare più una mission impossible. --Alex brollo (disc.) 22:45, 9 apr 2009 (CEST)
- Yuhhu! Grande notizia. Sono curioso di vedere i risultati: un'automazione del genere ci consentirebbe di aiutare moltissimo utenti volenterosi che non sanno da che parte iniziare (e sveltirebbero enormemente anche i nostri comuni inserimenti). --Aubrey McFato 23:58, 9 apr 2009 (CEST)
- Anche il secondo obiettivo, lo spezzamento automatico delle pagine OPAL in due facciate, è raggiunto. :-)
- Python e Nconvert sono una squadretta niente male.
- Cercasi urgentemente manovratori... :-( --Alex brollo (disc.) 01:36, 10 apr 2009 (CEST)
- Dimmi cosa si deve fare e io lo faccio. Spiegamelo in parole semplici, e renditi conto che io non sono un'informatica. Da oggi alle due fino a martedì mattina sono in pausa pasquale, posso fare abbastanza. Lagrande (disc.) 08:02, 10 apr 2009 (CEST)
- Alex, due cosette:
- deo gratia domani torno in Italia e sarò credo un po' assente per 10 giorni. Non ti preoccupare che leggo lo stesso :-)
- appena torno, se potrò (dato il fatto che corro su linux) sono disposto ad altre lezioni python/nconvert. Mi spiace perchè con djvulibre ho problemi e non capisco perchè.
- un file da dividere è qui. Dopo diviso andrebbe poi uploadato in commons (e io od Edo lo cancelliamo da it.source).
- te e Lagrande potreste mettervi d'accordo su un'opera di OPAL da lavorare in due: tu tagli/croppi/spezzi/OCR e lei rilegge e corregge (NB: in quest'ordine, così si potreste passare direttament al 100%: se c'è qualcun altro è anche meglio). Vi consiglierei un'opera non troppo impegnativa, altrimenti con troppa carne al fuoco rischiamo di lasciare tutto non cotto ;-). --Aubrey McFato 08:15, 10 apr 2009 (CEST)
- Alex, due cosette:
- Aubrey, potrei trattare le immagini che mi hai proposto via script, ma non lo farò, perchè non è conveniente: sono troppo poche e troppo diverse le une dalle altre, e anche i loro nomi non sono "standard". Suggerisco a tutti quelli che maneggiano immagini di questo tipo di scaricare XnView e di impararne i rudimenti: per lavorare "a mano" su immagini o anche su gruppi di immagini, in blocco, è eccellente e si lavora in un ambiente "umano". Quindi, quei files li "tratterò a manina". Gli script vanno riservati a opere di tipo diverso: grandi files con centinaia di immagini da manipolare. Oppure, decine di grandi file da manipolare uno dopo l'altro... oppure, decine di cartelle ognuna delle quali contenente decine di grandi files... ecc. Allora sì che ne vale la pena, di perdere qualche ora per raffinare un buon script. :-) --Alex brollo (disc.) 09:54, 10 apr 2009 (CEST)
PS: Siccome XnView e Nconvert sono quasi esattamente l'identica cosa, in quanto sfruttano gli stessi programmi di base elementari (le stesse librerie), usare XnView a mano è un eccellente metodo per verificare cosa Nconvert potrebbe fare via script (a dire il vero, può fare molto di più, ma di certo può fare tutto quello che fa XnView). Fra l'altro, anche un modo istruttivo per capire che l'interfaccia grafica è solo un orpello... un modo per fare, con grande spreco di bytes e grande rischio di patologie osteoraticolari della spalla destra per eccessivo uso del mouse, quello che uno script potrebbe fare obbedendo poche parolette magiche... se non fosse per l'orrendo e infondato pregiudizio che le parolette magiche sono riservate agli stregoni e agli sciamani. Danni da Apple, ingigantiti dai successivi danni da Windows... :-( --Alex brollo (disc.) 10:02, 10 apr 2009 (CEST)
Malto via bot: interessanti prospettive in vista
Qualc1 mi ha magicamente scritto al volo una routine python attraverso la quale ogni bot può inviare una mail a un utente (che abbia abilitato la ricezione mail da wiki, ovvio) attraverso la pagina Speciale:EmailUser. In termini pratici, questo significa che possono essere scritte delle routine per abilitare un bot ad accettare richieste di ricerca, anche estremamente laboriosa e complessa, nell'intero database di Source, e a rispondere all'utente richiedente via mail, risparmiando lo spazio web source. La preoccupazione di risparmiare spazio web su Source può sembrare eccessiva, ma era un ostacolo notevole (per me) a sviluppare routine di questo tipo. Per gli amministratori-botolatori, si schiudono anche possibilità notevoli di invio di comunicati ecc (con la misura e la cautela che ogni invio di mail multiple richiede, ovvio). Il rischio che una funzione del genere alimenti lo spam esiste, ma secondo Jayvdb, che ho interpellato via irc, non è critico. --Alex brollo (disc.) 08:51, 7 mag 2009 (CEST)
Spostato da Zibaldone
Nuovo fronte: questione di virgole
(Spostato qui dal Bar Zibaldone perchè mi sono reso conto che con Zibaldone c'entra poco).
Farò degli esperimenti per estrarre alcuni elementi significativi dal testo txt che IE fornisce per Zibaldone. Fra questi:
- punto di fine pagina
- punteggiatura
L'idea è quella di utilizzare tali elementi per migliorare ulteriormente il testo che sto caricando, senza introdurre errori, o meglio e più realisticamente: introducendo nuovi errori in numero molto minore delle correzioni esatte (diciamo, con un rapporto inferiore a 1:10).
Non è un problema facile, perchè devo ideare uno script che si fondi sulla similitudine più che sull'uguaglianza fra parole... una sfida terrificante, ma se mi riesce.... :-) --Alex brollo (disc.) 09:39, 29 giu 2009 (CEST)
- Non serve alcuno sforzo per riscoprire l'acqua calda. Fra le routine del modulo difflib.py di python c'è tutto quello che serve per comparare sequenze, valutarne la ratio (indice di somiglianza, da 0 a 1), elencare le differenze e perfino produrre una pagina html finita, in cui a sono visualizzate a fronte le due sequenze e le loro differenze (esattamente quello che fa il software wiki nella pagina "differenze fra revisioni").
- Quindi, contrentrerò gli sforzi per capire bene le routine di questa liberia, e riassemblarle "a modo mio" incorporandole in Alebot. Fra l'altro, devo anche rovistare nel mattone pywikipedia, può essere che ci sia qualcosa di pronto. :-) --Alex brollo (disc.) 08:04, 1 lug 2009 (CEST)
Lectio facilior
Avendo a disposizione, come per Ziba, due versioni testuali a e b dello stesso testo (una proveniente da Binni-Ghinetti attraverso LiberLiber; l'altra, proveniente da Le Monnier attraverso Internet Archive), niente impedisce di caricare prima il testo a, poi il testo b, sulla stessa pagina, e poi chiedere la differenza fra revisioni (in questo caso, la differenza fra versioni); chissà che non possa essere utile per vedere, "a colpo d'occhio umano", qualche particolare utile? Penso che rispolvererò un mio vecchio tool che ricava le pagine singole dal file xml.djvu di IE e vediamo cosa succede...--Alex brollo (disc.) 08:13, 1 lug 2009 (CEST)
Note sulla ricerca di testi e sul confronto fra testi
I software hanno straordinarie capacità di trovare un frammento di testo (che chiameremo "stringa 1") all'interno di un altro testo, lungo a piacere (che chiameremo "stringa 2"), purchè una copia esatta, carattere per carattere, della stringa 1 sia contenuta nella stringa 2. In questo caso, ad esempio, python trova una stringa all'interno del dump xml di it.source (circa 250 Mby) in un tempo dell'ordine dei millisecondi (probabilmente molto meno), fornendo anche, con la stessa velocità, il numero di corrispondenze (il numero di copie di stringa 1 contenute in stringa 2).
Se invece la copia della stringa 1 presente in stringa 2 non è assolutamente identica (differisce anche solo in un carattere), in un tempo altrettanto breve il software conclude la ricerca rispondendo che la stringa 1 non è presente nella stringa 2.
Le funzioni di ricerca mediante parole chiave sono estremamente efficienti, ma producono una lista di testi piuttosto che l'indicazione di un testo solo, là dove è contenuta la migliore approssimazione della stringa da ricercare; la selezione fra i testi va fatta "da umano".
Altri programmi sono specializzati nel confronto fra stringhe leggermente diverse, e nella ricerca dei caratteri comuni e dei caratteri diversi (analisi del delta fra stringhe). In wiki, programmi di questo tipo confrontano le varie versioni delle pagine e producono la pagina delle "differenze fra revisioni". Si tratta di programmi molto impegnativi in termini di tempo di elaborazione, che aumenta in modo quadratico o cubico con la lunghezza delle stringhe da confrontare; è impensabile utilizzarli per ricercare una stringa all'interno di una stringa molto lunga (centinaia di Kby o addirittura molti Mby). Eccellenti script python per l'analisi del delta fra stringhe sono raccolti nel modulo difflib.py, che appartiene alla release standard di python.
Tenuto comunque conto che due stringhe "simili" sono caratterizzate dalla coesistenza segmenti comuni e segmenti diversi, ne segue che prendendo frammenti a caso della stringa 1 e cercandoli all'interno della stringa 2, nel caso che una "copia imperfetta" di 1 sia contenuta in 2 avverrà certamente che alcuni frammenti di 1 siano trovati all'interno di 2. E' quello che fa lo script python look(stringa1,stringa2,n) che ho scritto: estrae frammenti random di stringa 1, di lunghezza n e li ricerca all'interno della stringa 2, restituendo il numero di corrispondenze (da 0 a x). Fatto girare per prova passando frammenti di Zibaldone, provenienti da OCR grezzo, come stringa 1, e passando il testo completo di Zibaldone (vol II-VII) come stringa 2 (circa 8 Mby), ed esaminando i risultati, ho osservato un fatto imprevisto: in molti casi, un frammento random di stringa 1, della lunghezza di soli 10 caratteri, è presente in un'unico punto di stringa 2, e nella maggior parte di questi casi di corrispondenza unica questa corrisponde alla effettiva posizione della "copia imperfetta" di stringa 1 all'interno di stringa 2!
E' in corso il raffinamento della funzione, ed in particolare la verifica che la corrispondenza non sia casuale; questo può essere ottenuto utilizzando i software che evidenziano le somiglianze e le differenze fra stringhe, sopra menzionati, che a questo punto possono essere lanciati su stringhe brevi, e quindi fornire una risposta con alta efficienza e velocità.
Appena lo script sarà raffinato, lo pubblicherò in una sottopagina di Utente:Alebot. --Alex brollo (disc.) 10:37, 6 lug 2009 (CEST)
Dragging in AltraVersione
Il tl Altraversione è un osso duro, a capirlo, perchè il suo misterioso aoutput è in realtà l'input di una unzione javascript.
Detto ciò, ho visto che:
accetta wikilink "lisci" (es: {{AltraVersione|Utente:Alex brollo|Prova wikilink}})No, non funziona. :-(- accetta URL "lisci" (es: {{AltraVersione|http://it.wikisource.org/wiki/Utente:Alex brollo|Prova url link}})
- non accetta url dinamici (es:{{AltraVersione|http://it.wikisource.org/w/index.php?title=Utente:Alex_brollo&action=edit|Prova url edit}})
Tuttavia per misteriosi motivi accetta anche URL dinamici chiamati per nome.
Questo codice funziona: {{AltraVersione|1=http://it.wikisource.org/w/index.php?title=Utente:Alex_brollo&action=edit|2=Prova url edit}}
Non so spiegarmelo, ma funziona. --Alex brollo (disc.) 10:13, 28 ago 2009 (CEST)
- Mi sai dire che cavolo sta facendo John? Parlate della stessa cosa? Non capisco. O__O --Aubrey McFato 11:30, 28 ago 2009 (CEST)
- Tutto sotto controllo (spero): io ho riferito a John su §§/Pt, lui si è incuriosito e ci ha provato ad appiccicare Altraversione, costringendomi a riflettere e esplorare AltraVersione... la discussione la puoi seguire su en:User:Jayvdb. San Rollback è lì, comunque, che aspetta. ;-) --Alex brollo (disc.) 12:19, 28 ago 2009 (CEST)
Come aggiungere i nostri tastini a Vector
Ci sono riuscito, posso aggiungere alla toolbar di Vector tutti i tastini che voglio. :-)
In realtà, si può fare molto di più; la toolbar può essere veramente modificata in ogni parte, ma per ora accontentiamoci di aggiungere tastini al box "Avanzate" nel gruppo "Formato". Chi vuole sapere di più, deve andare sulle pagine (quasi prive di documentazione...) di: http://usability.wikimedia.org/wiki/Toolbar_customization
Istruzioni
Aprite un file Utente:vostrousername/vector.js e copiaincollateci questo codice:
/ PULSANTI ADDIZIONALI per skin Vector :-) // AutoreCitato: confronta codice sotto con vecchia versione per monobook. La funzione è autonoma, // non richiede il caricamento di altri script! if ( typeof $j != 'undefined' && typeof $j.fn.wikiEditor != 'undefined' ) { $j(document).ready( function() { // qui metterete il codice per il primo tastino... // qui metterete il codice per il secondo tastino... // ..... } ); }
Per ognuno dei tastini mettete questo codice:
$j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { 'section': 'advanced', 'group': 'format', 'tools': { 'qui il nome del tastino': { label: 'qui il messaggio passandoci col mouse', type: 'button', icon: 'qui l'URL dell'immagine dei tastino', action: { type: 'encapsulate', options: { pre: "qui il testo che andrà prima del testo selezionato", post: "qui il testo che andrà dopo il testo selezionato" } } } } } );
Tutte le indentature e gli acapo servono solo per rendere il codice js leggibile, potete "compattarli". Vi metto un codice prontoche aggiunge quattro miei amati tastini in Utente:Alex brollo/esempio.js. Voi copiatevelo dentro il vostro file vector.js e hackerizzatelo. Tenete conto che di js non ci capisco praticamente una cippa, quindi, se ce l'ho fatta io vuoldire che non è affatto difficile. :-) --Alex brollo (disc.) 01:14, 16 apr 2010 (CEST)