Argdown

Il Markdown al servizio dell’argomentazione

Argdown è uno strumento per la rappresentazione e l’analisi di argomentazioni in forma testuale e grafica. Nasce attorno al 2017 come progetto open source*, sviluppato da Christian Voigt e altri ricercatori interessati all’argomentazione strutturata e alla visualizzazione delle relazioni tra proposizioni. L’obiettivo principale era creare un linguaggio che combinasse la semplicità dei linguaggi di markup* come Markdown con la potenza analitica di strumenti per la mappatura argomentativa.

La semplice sintassi di Argdown permette di rappresentare premesse, conclusioni e relazioni tra affermazioni in un formato leggibile e facilmente modificabile. Una delle sue caratteristiche più apprezzate è la possibilità di convertire automaticamente il testo in mappe argomentative visive grazie a strumenti di rendering*, rendendolo utile per chi si occupa di analisi del discorso e ragionamento strutturato. Inoltre, può essere integrato con diverse librerie di analisi dell’argomentazione, ampliando le sue possibilità di utilizzo.

Dopo la sua creazione, Argdown ha trovato applicazione in vari ambiti. In filosofia e logica è stato utilizzato per la didattica e l’analisi dei ragionamenti filosofici, mentre nel contesto del Debate e della retorica è servito per la costruzione e la valutazione delle argomentazioni nei dibattiti. Anche nel campo dell’intelligenza artificiale e del diritto è stato impiegato per modellare argomentazioni giuridiche e analizzare il ragionamento legale.

Per supportare il suo utilizzo, la comunità ha sviluppato vari strumenti, tra cui un editor online che permette di scrivere e visualizzare mappe argomentative in tempo reale, un plugin* per Visual Studio Code e librerie JavaScript* per l’integrazione con siti web e applicazioni.

Cosa ci serve per cominciare

Per iniziare a usare Argdown non serve avere competenze informatiche avanzate. Il modo più semplice per provarlo è utilizzare la sandbox (all’url: https://argdown.org/sandbox/html) di Argdown, uno spazio online che permette di scrivere e visualizzare mappe argomentative senza dover installare nulla. Basta aprire il link, scrivere un testo seguendo una sintassi molto intuitiva e vedere immediatamente il risultato in forma grafica.

Figura 1

Per un uso avanzato si raccomanda tuttavia di scaricare e installare Visual Studio Code (url: https://code.visualstudio.com/), un programma gratuito che, con il plugin* di Argdown, offre un ambiente più completo per scrivere e analizzare argomentazioni.

Le dichiarazioni

Entriamo quindi nella sandbox. Troviamo nella finestra a sinistra del codice, che viene elaborato (rendering) nella finestra a destra.

Dopo una breve presentazione, ci troviamo di fronte al seguente testo che fornisce alcune basi di Argdown:

 ## Argdown Basics This is a normal statement with __bold__ 
 and _italic_ text, a #tag and a [link](https://github.com/
 christianvoigt/argdown-parser). 
 
 [Statement 1]: Another statement (after a blank line), 
 this  time with a title defined in square brackets. 
 We can use the  title to refer to this statement 
 later or mention it in other  statements. #(Another tag) 
 
 [Statement 2]: Let's do that now: The previous
 statement was @[Statement 1].
   + <Argument title>: Statements can be supported by
   __arguments__. Arguments are defined by using angle 
   brackets. #tag 
   - <Another argument>: This arguments attacks 
   @[Statement 2]. #tag 
   - <Yet another argument>: Arguments can also be 
   supported or attacked. #yet-another-tag 

Sappiamo, da queste prime righe, che per creare uno statement, ossia una dichiarazione, possiamo semplicemente scrivere del testo, formattandolo se occorre nel modo indicato. Possiamo però anche dare un titolo o nome alla nostra tesi usando le parentesi quadre seguite da due punti. Possiamo usare corsivo o grassetto o inserire link, secondo le regole del Markdown (per le quali si veda l’Appendice). Se lo riteniamo utile, possiamo anche aggiungere un tag.

[Democrazia imperfetta]: La democrazia rappresentativa è 
una forma di governo imperfetta perché, pur garantendo una 
partecipazione politica più ampia rispetto ad altre forme 
di governo, tende a consolidare **élite politiche ed 
economiche** che limitano l'effettivo esercizio del 
potere da parte dei cittadini. #elitismo 

Il rendering* HTML* di questo codice è il seguente:

Figura 2

Gli argomenti

Ogni dichiarazione può essere sostenuta da una serie di argomenti a favore o contrari. Per aggiungere argomenti si procede come segue:

  • Si va a capo dopo aver scritto la dichiarazione.

  • Si lascia uno spazio per indentare il testo.

  • Si inserisce quindi un + per un argomento a favore e un - per un argomento contrario.

  • Si inserisce un testo di breve descrizione dell’argomento tra parentesi uncinate (<>), seguito da due punti e il testo dell’argomento.

Si veda questo esempio:

[La pena di morte è necessaria]: Bisogna introdurre 
la pena di morte nel sistema penale italiano. 
  + <Deterrenza>: La pena di morte ha un innegabile 
  valore di deterrenza. 
  + <Giustizia>: La pena di morte risponde a un 
  semplice bisogno di giustizia; per chi ha tolto 
  la vita il carcere non è una pena sufficiente. 
  -<Errore giudiziario>: Con la pena di morte c'è 
  il rischio di condannare innocenti. 
  -<Discriminazione>: La pena di morte può essere 
  usata soprattutto verso gli appartenenti a una 
  minoranza, come accade negli Stati Uniti, dove 
  ad essere condannati a morte sono per lo più 
  persone dalla pelle nera. 

Il rendering* HTML* di questa mappa è il seguente:

Figura 3

Questo è sufficiente per inserire un argomento in una mappa. Tuttavia ogni argomento è la sintesi di un ragionamento più ampio, che può essere ricostruito nel dettaglio. Analizziamo il primo argomento contrario: “Con la pena di morte c’è il rischio di condannare innocenti”. Esso si basa su un principio di precauzione e giustizia. Vediamo come ricostruirlo logicamente.

Premessa 1: Il sistema giudiziario non è infallibile e possono verificarsi errori giudiziari.

Premessa 2: La pena di morte è irreversibile: una volta eseguita, non è possibile correggere un errore.

Premessa 3: Ci sono casi storici in cui innocenti sono stati giustiziati (es. Sacco e Vanzetti).

Conclusione: Pertanto, la pena di morte comporta il rischio inaccettabile di giustiziare innocenti.

In Argdown possiamo ricostruire questo ragionamento numerando tra parentesi tonda ogni argomento e inserendo quattro trattini brevi prima della conclusione.

(1) Il sistema giudiziario non è infallibile e possono 
verificarsi errori giudiziari. 
(2) La pena di morte è irreversibile: una volta eseguita, 
non è possibile correggere un errore. 
(3) Ci sono casi storici in cui innocenti sono stati 
giustiziati (es. Sacco e Vanzetti). 
---- 
(4) Pertanto, la pena di morte comporta il rischio 
inaccettabile di giustiziare innocenti. 

Il rendering* HTML* è il seguente:

Figura 4

È possibile anche inserire annotazioni relative al tipo di inferenza inserendole tra due linee prima della conclusione:

 (3) 
 ---- 
 Modus ponens 
 ---- 
 (4)

Le mappe grafiche

Fino ad ora abbiamo considerato il rendering* HTML* del codice. Cliccando sulla voce di menu Map, in alto a destra, accediamo al rendering* grafico del codice. È possibile visualizzare la mappa in due formati grafici, Viz Js e Dagre D3, due librerie JavaScript* che danno risultati grafici un po’ diversi. La nostra mappa sulla pena di morte si presenta in questo modo nel formato Viz Js:

Figura 5


Questo invece è il rendering* in Dagre D3:

Figura 6


Come si vede, gli argomenti a favore della dichiarazione sono collegati ad essa da linee verdi che terminano con una freccia, mentre quelli contrari sono collegati da linee rosse.

Se si desidera invertire la direzione della freccia, occore modificare il codice come segue:

[A]: a. 
 +> <a1>: a1 
 + <a2>: a2 
 -><b1>: b1 
 -<b2>: b2 

Il risultato è questo:

Figura 7

Gli argomenti contrassegnati con +> e -> risultano in uscita dalla dichiarazione, con una freccia che punta verso di essi.

Raggruppare gli elementi

Osserviamo questo esempio:

# Esempio 

## Gruppo 

[T1]: Tesi 1 
 + <Arg 1>: Primo argomento 
 + <Arg 2>: Secondo argomento
 -> [T2] 
 
## Gruppo 

[T2]: Tesi 2 
 - <Arg 3>: Primo argomento 
 + <Arg 4>: Secondo argomento 

### Sottogruppo 

[T3]: Tesi 3 
 - <Arg 5>: Primo argomento 
 + <Arg 6>: Secondo argomento 
 -> [T2] 

Il rendering* HTML* è il seguente:

Figura 8

La mappa grafica invece si presenta come segue:

Figura 9

Come si vede, gli elementi ora sono raggruppati. Ci sono due gruppi, uno dei quali include un sottogruppo. Per ottenere questo risultato grafico Argdown fa uso della sintassi usata per formattare i titoli in Markdown. Per un titolo generale si usa # Titolo, mentre per un titolo di paragrafo si ricorre a un doppio cancelletto, e a tre cancelletti per il titolo di un sottoparagrafo (si veda l’Appendice). In Argdown questi titoli strutturano la mappa in gruppi e sottogruppi.

Si noti la freccia rossa che va da T1 e T3 a T2. È stata ottenuta semplicemente scrivendo -> [T2] nelle tesi 1 e 3.

Come usare Argdown in classe

Argdown è lo strumento più esigente tra quelli presentati in questa sezione ed è esattamente in questo che risiede il suo valore didattico. La sintassi richiede di esplicitare ciò che nell’argomentazione ordinaria rimane implicito: la distinzione tra tesi, argomenti e premesse; il tipo di relazione tra ciascun elemento; la struttura inferenziale che porta dalle premesse alla conclusione. Scrivere un argomento in Argdown è diverso dal trascrivere un ragionamento già formato; il ragionamemento in questo caso viene costruito passo dopo passo e spesso, nel processo di costruzione, emergono incoerenze o lacune che nella forma discorsiva sarebbero rimaste invisibili.

Argdown richiede un tempo di apprendimento superiore rispetto a Kialo-Edu o Mindmup. Si consiglia di introdurlo in un momento dell’anno in cui la classe ha già acquisito familiarità con il metodo dell’analisi argomentativa – tipicamente dopo avere lavorato con uno degli altri strumenti – e di dedicare almeno una lezione alla sandbox, lavorando su un esempio semplice prima di affrontare un testo filosofico complesso. L’investimento iniziale è ripagato dalla qualità dell’analisi che lo strumento rende possibile.