De Eiffeltoren is een zeer iconisch bouwwerk, er zijn dan ook een hele boel replica’s van verspreid over de wereld.

Gegeven een database1 met feiten van de vorm replica_size(Naam, Grote), replica_country(Naam, Land) en replica_place(Naam, (X,Y)) die de waarden geven die de naam suggereert waarbij Grote gegeven is als 1:Scale. Schrijf volgende predicaten:
replicas_in(Land, L): Die L unificeert met een alfabetisch gesorteerde lijst van replica’s in Landtop_replicaters(SortedList): Die SortedList unificeert met een lijst van koppels van de vorm (Land, Aantal) gesorteerd van hoog Aantal naar laag en vervolgens alfabetisch op naam van het land.map_replicas_countries(ReplicaNames, Countries): die een lijst van replica namen omzet in een lijst van landen waarin die zich bevinden.Maak gebruik van de ingebouwde predicaten setof/3, bagof/3, maplist, sort/4.
?- replicas_in("China",List).
List = ["Eiffel Tower of Tiandu City Community (also called Tianducheng)", "Eiffel Tower of Window of the World", "Long Ta"].
?- top_replicaters(List).
List = [("USA", 9), ("Russia", 4), ("China", 3), (..., ...)|...].
?- map_replicas_countries(["Las Vegas Eiffel Tower", "Krasnoyarsk Eiffel Tower"], Countries).
Countries = ["USA", "Russia"].