Prolog è programmazione logica, tutta un'altra cosa rispetto alla programmazione ad oggetti di Java o al C. E' proprio un approccio mentale diverso e non penso tu riesca a farlo in poco tempo.
Comunque per l'identificazione delle part of speech dai uno sguardo alla libreria Stanford per il nlp:
http://nlp.stanford.edu/software/
ps: lo stemming è un'operazione preliminare di nlp che estrae la radice delle parole, eliminando le desinenze dovute a genere, numero, coniugazione di verbi ecc..
Esempio:
walking -> walk
walks -> walk
catches -> catch
E' utile, per esempio, a migliorare i motori di ricerca.