Forskjellen mellom vanlig grammatikk og kontekstfri grammatikk
Grammatikk betyr noe helt annet for lingvister og dataprogrammerere enn for folk flest. Mens de fleste av oss tenker på grammatikk som et sett med etikettregler for sosialt akseptabel språkbruk, tenker språkforskere og programmerere grammatikk som noe langt mer kraftfullt: Regelsettet som kan generere alle mulige uttrykk i en gitt reell eller kunstig språk eller fragment av et språk. Vanlige og kontekstfrie grammatikker er de to logisk mulige typene grammatikk og skiller seg fra hverandre når det gjelder hvilke typer regler de tillater og hvilke typer uttrykk de kan produsere.
Opprinnelse
Språkforskeren Noam Chomsky utviklet forestillingene om kontekstfrie og vanlige grammatikker i sitt arbeid fra 1959 "On Certain Formal Properties of Grammars." Han stilte til eksistensen av flere grunnleggende grammatikktyper, som skiller seg fra hverandre når det gjelder kompleksiteten til de språklige uttrykkene de kan produsere. Vanlige grammatikker er enklere og mindre produktive enn kontekstfrie grammatikker.
Forskjellen mellom regler
Vanlige og kontekstfrie grammatikker er forskjellige i hvilke typer regler de tillater. Reglene for kontekstfrie grammatikker tillater mulige setninger som kombinasjoner av ikke-relaterte enkeltord (som Chomsky kaller "terminaler") og grupper av ord (setninger, eller det Chomsky kaller "ikke-terminaler"). Innholdsfri grammatikk tillater individuelle ord og uttrykk i hvilken som helst rekkefølge, og tillater setninger med et hvilket som helst antall individuelle ord og uttrykk. Vanlige grammatikker tillater derimot bare individuelle ord sammen med en enkelt setning per setning. Videre må setninger i vanlige grammatikker vises i samme posisjon i hver setning eller setning, generert av grammatikken.
Strukturer
Fordi kontekstfrie grammatikker tillater et bredere spekter av regler enn vanlige grammatikker, kan de generere et bredere spekter av strukturer enn vanlige grammatikker. For eksempel kan de involvere forskjellige mulige strukturer for uttrykk, for eksempel “en jente fra byen med penger problemer” (her vil strukturene variere avhengig av om “med penger problemer” beskriver byen eller jenta). Vanlige grammatikker kan ikke gjøre dette, men kan generere bare enkle uttrykk som består av strenger med enkle, strukturelt uavhengige ord og muligens en større setning (for eksempel "veldig, veldig smarte mennesker").
Bruker
Kontekstfrie grammatikker brukes i naturlig språkbehandling for å generere og analysere språkdata fordi de kan fange opp mange av de definerende egenskapene til menneskelig språk, for eksempel potensialet for uendelig rekursive strukturer. Vanlige grammatikker, som bare genererer en delmengde av uttrykkene for kontekstfrie grammatikker, brukes også til naturlig språkbehandling. Imidlertid kan de bare replikere eller behandle korte og grammatisk enkle språklige uttrykk, for eksempel korte uttrykk som vanligvis finnes i uformell dialog.