Forskellen mellem almindelig grammatik og kontekstfri grammatik
Grammatik betyder noget meget andet for lingvister og computerprogrammerere end det for de fleste mennesker. Mens de fleste af os tænker på grammatik som et sæt etiketteregler for socialt acceptabel sprogbrug, betragter lingvister og programmører grammatik som noget langt mere kraftfuldt: Regelsættet, der kan generere alle mulige udtryk i en given reel eller kunstig sprog eller fragment af et sprog. Regelmæssige og kontekstfrie grammatikker er de to logisk mulige typer grammatik og adskiller sig fra hinanden i de typer regler, de tillader og de typer udtryk, de kan producere.
Oprindelse
Sprogforskeren Noam Chomsky udviklede forestillingerne om kontekstfri og regelmæssige grammatikker i sit arbejde fra 1959 "Om visse formelle egenskaber ved grammatikker". Han stillede eksistensen af flere grundlæggende grammatiktyper, som adskiller sig fra hinanden med hensyn til kompleksiteten af de sproglige udtryk, de kan producere. Almindelige grammatikker er enklere og mindre produktive end kontekstfrie grammatikker.
Forskellen mellem regler
Regelmæssige og kontekstfrie grammatikker adskiller sig i de typer regler, de tillader. Reglerne for kontekstfri grammatik tillader mulige sætninger som kombinationer af ikke-relaterede individuelle ord (som Chomsky kalder "terminaler") og grupper af ord (sætninger eller hvad Chomsky kalder "ikke-terminaler"). Kontekstfri grammatik tillader individuelle ord og sætninger i enhver rækkefølge og tillader sætninger med et vilkårligt antal individuelle ord og sætninger. Almindelige grammatikker tillader derimod kun individuelle ord sammen med en enkelt sætning pr. Sætning. Desuden skal sætninger i almindelige grammatikker vises på samme position i hver sætning eller sætning, genereret af grammatikken.
Strukturer
Da kontekstfrie grammatikker tillader en bredere vifte af regler end almindelige grammatikker, kan de generere en bredere vifte af strukturer end almindelige grammatikker. For eksempel kan de involvere forskellige mulige strukturer for sætninger, såsom "en pige fra byen med penge problemer" (her vil strukturer variere afhængigt af om "med penge problemer" beskriver byen eller pigen). Almindelige grammatikker kan ikke gøre dette. De kan snarere generere enkle udtryk, der består af strenge af enkelte, strukturelt uafhængige ord og muligvis en enkelt større sætning (såsom "meget, meget kloge mennesker").
Anvendelser
Kontekstfrie grammatikker bruges i naturlig sprogbehandling til at generere og analysere sprogdata, fordi de kan fange mange af de definerende træk ved menneskeligt sprog, såsom deres potentiale for uendeligt rekursive strukturer. Regelmæssige grammatikker, der kun genererer en delmængde af udtryk for kontekstfri grammatik, bruges også til naturlig sprogbehandling. De kan dog kun replikere eller behandle korte og grammatisk enkle sproglige udtryk, såsom korte udtryk, der typisk findes i uformel dialog.