There are two library files for reading sentences. One of them is library(readin), which defines the single predicate read_in/1. library(readin) was written to be used.

library(readsent) was originally written to be read and modified, as everyone has a different idea of how sentence reading should be done. Nevertheless, you may find read_sent/1 to be quite useful.

Both sentence readers work by reading characters until some termination condition and then parsing a list of character codes using a Definite Clause Grammar. You can have any number of grammars in one Prolog program. You will probably find that read_in/1 does most of what you want, but if you want to do something different you may find it easier to modify read_sent/1.