A permission error occurs when an operation is attempted that is among the kinds of operation that the system is in general capable of performing, and among the kinds that you are in general allowed to request, but this particular time it isn't permitted. Usually, the reason for a permission error is that the owner of one of the objects has requested that the object be protected.
For example, an attempts to assert or retract clauses for a predicate that
has not been declared
:-dynamic is rejected with a permission error.
File system protection is another major source of such errors.
The SICStus_Error term associated with a permission error is
permission_error(Goal, Operation, ObjectType, Culprit, Message)
''provides no further information.