Uma restrição contínua não devolve uma violação — devolve um número. O quanto uma vogal se afasta do alvo, digamos: uma distância, crua, em hertz ou no que for. Chamar esse número de "violação" é pular uma etapa. Entre o valor bruto e a penalidade mora uma escolha que quase nunca explicitamos: uma função de ligação, que decide como o valor vira castigo.
E há mais de um jeito honesto de fazer isso. A ligação pode ser linear e apenas repassar o número como está. Pode ser exponencial e punir cada passo de afastamento com mais fúria que o anterior. Pode ser logística e tolerar o desvio até certo ponto, para então desabar num paredão. Todas partem de zero e crescem com a distância — o mínimo que se espera de uma penalidade —, mas o formato de cada uma é uma teoria diferente sobre o que conta como "ruim":
Poderia parecer um detalhe técnico, não fosse o que acontece rio abaixo. A gramática não lê violações e para por aí: ela as pondera, soma e transforma em probabilidade — e faz isso exponenciando, $P \propto e^{-\sum_k w_k v_k}$, como nas gramáticas de máxima entropia (Hayes & Wilson, 2008; Jäger, 2007). Ou seja, a distribuição que o modelo prevê sobre a vogal já nasce de uma exponencial. A ligação que escolhemos lá atrás reaparece aqui dentro, moldando o pico, os ombros e as caudas do que se espera ver.
Repare, então, que uma das ligações fala a mesma língua da máquina. Se a saída já é uma exponencial, uma ligação exponencial mantém tudo na mesma moeda: positiva, multiplicativa, compondo-se sem emendas. Não é a única possível, mas é a que menos atrita com o que vem depois. Dá para ver isso num tableau: tome três candidatos a distâncias 0, 1 e 2 do alvo. Lida pela ligação linear, a diferença entre eles é suave:
Lida pela ligação exponencial ($v=e^{r}-1$), a mesma distância pesa muito mais longe do alvo, e a probabilidade se concentra com força no vencedor:
Vale conferir a conta em vez de confiar no desenho — as duas colunas de $P$ saem de um mesmo punhado de distâncias, só que vistas por ligações diferentes:
import math
# Uma restrição devolve uma distância crua; a ligação a transforma em violação.
# Três candidatos a distâncias 0, 1, 2 do alvo, vistos por duas ligações.
r = [0, 1, 2]
def P(vs, w=1.0): # saída MaxEnt: exponencia o negativo da harmonia
hs = [math.exp(-w * v) for v in vs]
Z = sum(hs)
return [h / Z for h in hs]
linear = list(r) # v = r
expo = [math.exp(x) - 1 for x in r] # v = e^r - 1
print("candidato r v(lin) v(exp)")
for i, x in enumerate(r):
print(f" {i} {x} {linear[i]:.2f} {expo[i]:.2f}")
print("P linear:", [round(p, 3) for p in P(linear)])
print("P exp :", [round(p, 3) for p in P(expo)])
No fim, a moral é modesta e um tanto desconcertante: a violação não estava no mundo à espera de ser medida. Ela é fabricada — pela restrição, sim, mas também pela ligação silenciosa que escolhemos para lê-la. Nomeie a ligação e você já terá decidido, sem perceber, boa parte do que a gramática vai prever.
- Hayes, B., & Wilson, C. (2008). A Maximum Entropy Model of Phonotactics and Phonotactic Learning. Linguistic Inquiry.
- Jäger, G. (2007). Maximum Entropy Models and Stochastic Optimality Theory. Preprint.
Barroso, A. M. (2025). A violação vista por uma função de ligação. alexandrebarroso.com. https://alexandrebarroso.com/notes/a-violacao-por-uma-ligacao.html
@misc{barroso2025aviolacaoporumaligacao,
author = {Alexandre Menezes Barroso},
title = {A violação vista por uma função de ligação},
year = {2025},
howpublished = {alexandrebarroso.com},
url = {https://alexandrebarroso.com/notes/a-violacao-por-uma-ligacao.html},
note = {alexandrebarroso.com}
}