/** imported_from( +Clauser, +Mod ). Holds if Goal corresponding to Clauser (a goal or predicate identifier) and predicate_property/2 defines property imported_from(Mod). Up to v0.2 this used to succeeed with ==Mod=user== if Clauser was not imported from anywhere. @author nicos angelopoulos @version 0.1 2017/02/22 @version 0.2 2022/02/05, try user:Goal if failed on G @version 0.3 2022/11/19, remove success to user when not imported */ imported_from( Pname/Parity, Mod ) :- !, functor( Goal, Pname, Parity ), imported_from( Goal, Mod ). imported_from( Goal, Mod ) :- predicate_property( Goal, imported_from(Mod) ), !. imported_from( Goal, Mod ) :- predicate_property( user:Goal, imported_from(Mod) ), !. % imported_from( _Goal, user ). % removed at v0.3