All loading of source files is achieved by load_files/2. The hook prolog_load_file/2 can be used to load Prolog code from non-files or even load entirely different information, such as foreign files.
stream(Input) option. The hook must be
defined in the module user.
This can be used to load from unusual places as well as dealing with
Prolog code that is not represented as a Prolog source text (for example
some binary representation). For example, library library(http/http_load)
loads Prolog directly from an HTTP server. See also
prolog:open_source_hook/3,
which merely allows for changing how a physical file is opened.
open(Path, read, Stream). Options provide the
options as provided to load_files/2.
If the hook succeeds compilation continues by loading from the returned
(input) stream. This hook is particularly suited to support running the
code to a preprocessor. See also
prolog_load_file/2.comments(Comments). If the list of comments returned by
read_term/2
is not empty it calls this comment hook with the following arguments.
This hook is exploited by the documentation system. See stream_position_data/3. See also read_term/3.