A complication of Prolog is that facts may be updated in the program. Updating means that something that wasn't true before may become true when the facts in the program are updated. This is very uncharacteristic of logic. Facts that are true remain true and those that are false, remain false. This prevents the computer from searching for further answers when no more answers should be found.
Negation is a difficult concept in Prolog.
Specifying something isn't true may require more information than is required to give information that something is true. If the first statement fails, then the next one will succeed and a yes will be returned.