# How do you selectlively (auto)load pieces of the SWI Prolog library?

**URL:** <https://swi-prolog.discourse.group/t/how-do-you-selectlively-auto-load-pieces-of-the-swi-prolog-library/2936>\
**Category:** Help!\
**Created:** [September 16, 2020, 12:01pm UTC](https://swi-prolog.discourse.group/t/how-do-you-selectlively-auto-load-pieces-of-the-swi-prolog-library/2936 "2020-09-16T12:01:09Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [November 21, 2020, 10:47am UTC](https://swi-prolog.discourse.group/t/how-do-you-selectlively-auto-load-pieces-of-the-swi-prolog-library/2936/6 "2020-11-21T10:47:09Z")

</div>

> [@marcoxa](#):
>
> How do I force SWI Prolog not to autoload or, at a minumum, force fully qulified names for certain libraries?

It is still pretty unclear to me why you want that in the first place. You do not want students to use the library or be explicit about this? Using module:goal is bad practice given the design of the module systems as explained in [What is the best practice for "namespacing" imports? - #7 by jan](https://swi-prolog.discourse.group/t/what-is-the-best-practice-for-namespacing-imports/3273/7)

If you want to prevent or know which library predicates are used you can use the cross referencer (library(prolog\_xref)), load and test the program in a module (done anyway for the unit tester) and check this module after loading an running the program for predicates that are imported from the library, e.g.

```
 predicate_property(M:Goal, imported_from(File)).

```

And most likely there are several more ways 🙂

---

_[View the full topic](https://swi-prolog.discourse.group/t/how-do-you-selectlively-auto-load-pieces-of-the-swi-prolog-library/2936)._
