Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
|
grammatica_categoriale [2026/05/05 11:39] admin |
grammatica_categoriale [2026/05/05 15:01] (versione attuale) admin |
||
|---|---|---|---|
| Linea 1: | Linea 1: | ||
| ====== Una minima modellizzazione in python della grammatica categoriale nella versione di Ajdukiewicz ====== | ====== Una minima modellizzazione in python della grammatica categoriale nella versione di Ajdukiewicz ====== | ||
| {{: | {{: | ||
| - | Schema tratto da K. Ajdukiewicz, | + | |
| + | |||
| + | Schema tratto da Kazimierz | ||
| + | |||
| + | Nella formulazione di Ajdukiewicz la grammatica categoriale è totalmente indipendente dalla posizione lineare degli elementi. In questo la formulazione teorica originaria si differenzia da modelli successivi che hanno avuto séguito soprattutto in ambito angolassone (p. es. la grammatica di Joachim Lambek 1922-2014) e che distinguono tra casi in cui l’operando è inserito a destra e casi in cui l’operando è inserito a sinistra. L’impostazione “non linearizzata” di Ajdukiewicz è tuttora utilizzata negli studi di semantica formale. | ||
| + | |||
| + | ===== Tipi primitivi ===== | ||
| + | n = nome | ||
| + | s = frase | ||
| + | |||
| + | ===== Tipi funzione ===== | ||
| + | * v = s/n = una funzione che riceve un nome/ | ||
| + | * a = n/n = una funzione che riceve un nome/ | ||
| + | * adv = v/v = una funzione che riceve un verbo/ | ||
| + | * vt = v/n = una funzione che riceve un nome/ | ||
| + | * p = adv/n = una funzione che riceve un nome/ | ||
| + | * cop = v/a = una funzione che riceve un aggettivo come argomento e restituisce un verbo/ | ||
| + | * copl = v/adv = una funzione che riceve un avverbio o un sintagma preposizionale come argomento e restituisce un verbo/ | ||
| + | |||
| + | |||
| + | <code python ajdukiewicz.py> | ||
| + | #pip install sympy #pip3 install sympy | ||
| + | #python -m pip install simpy | ||
| + | from sympy import symbols | ||
| + | n = symbols(' | ||
| + | s = symbols(' | ||
| + | def v(x): #verb | ||
| + | if x==n: | ||
| + | return s | ||
| + | def a(x): # | ||
| + | if x==n: | ||
| + | return n | ||
| + | def adv(x): #adverb | ||
| + | if x==v: | ||
| + | return v | ||
| + | def vt(x): #transitive verb (schönfinkelization/ | ||
| + | if x==n: | ||
| + | return v | ||
| + | def p(x): # | ||
| + | if x==n: | ||
| + | return adv | ||
| + | |||
| + | def cop(x): #copula | ||
| + | if x==a: | ||
| + | return v | ||
| + | |||
| + | def copl(x): #locative copula | ||
| + | if x==adv: | ||
| + | return v | ||
| + | |||
| + | Mario=n | ||
| + | cammina=v | ||
| + | cuoco=n | ||
| + | il=a | ||
| + | bravo=a | ||
| + | lentamente=adv | ||
| + | affettuosamente=adv | ||
| + | saluta=vt | ||
| + | Gino=n | ||
| + | cane=n | ||
| + | morde=vt | ||
| + | un=a | ||
| + | cenno=n | ||
| + | con=p | ||
| + | affetto=n | ||
| + | è=cop | ||
| + | sta=copl | ||
| + | in_=p | ||
| + | cucina=n | ||
| + | lì =adv | ||
| + | a_ =p | ||
| + | casa =n | ||
| + | |||
| + | test = [ | ||
| + | cammina(Mario), | ||
| + | cammina(il(cuoco)), | ||
| + | cammina(il(bravo(cuoco))), | ||
| + | lentamente(cammina)(Mario), | ||
| + | saluta(Gino)(Mario), | ||
| + | morde(Mario)(il(cane)), | ||
| + | affettuosamente(saluta(Mario))(Gino), | ||
| + | con(affetto)(saluta(Mario))(Gino), | ||
| + | con(un(cenno))(saluta(Mario))(Gino), | ||
| + | è(bravo)(il(cuoco)), | ||
| + | sta(lì)(il(cuoco)), | ||
| + | sta(in_(cucina))(il(cuoco)) #il cuoco sta in cucina | ||
| + | ] | ||
| + | for i in test: | ||
| + | print(i) | ||
| + | </ | ||