línea de lectura a la lista atómica en prolog

Necesito leer cualquier línea (de user_input) en una lista atómica, por ejemplo

Example line, which contains any ASCII chars.

dentro

[Example,'line,',which,contains,any,ASCII,'chars.']

lo que tengo hasta ahora:

read_line_to_codes(user_input, Input),
atom_codes(IA,Input),
atomic_list_concat(AlistI,' ',IA).

pero eso solo funciona con palabras sueltas, debido a atom_codes. read / 2 también se queja de espacios, entonces, ¿hay alguna manera de hacer esto?

oh y tal vez luego dividir la coma en listas 2d, agregando el punto / signo de exclamación / signo de interrogación, por ejemplo

[[Example,line],[which,contains,any,ASCII,chars],'.']

btw: eso es SWI-prolog.

EDIT: encontró la solución:

read_line_to_codes(user_input, Input),
string_to_atom(Input,IA),
atomic_list_concat(AlistI,' ',IA),

no puedo responder mi propia pregunta porque no tengo 100 reputación: - /