Terms that you enter at the toplevel are processes as queries, while terms that appear in a file that is loaded into Prolog is processed as a set of rules and facts. If a text reads as below, this is a rule.
Trying to enter this at the toplevel results in the error below. Why? Because a rule is a term :-(Head, Body), and because the toplevel interprets terms as queries. There is no predicate with the name :- and two arguments.